(0) Obligation:

JBC Problem based on JBC Program:
Manifest-Version: 1.0 Created-By: 1.6.0_20 (Sun Microsystems Inc.) Main-Class: FlattenRTA
public class FlattenRTA {
public static IntList flatten(TreeList list) {
TreeList cur = list;
IntList result = null;
while (cur != null) {
Tree tree = cur.value;
if (tree != null) {
IntList oldIntList = result;
result = new IntList();
result.value = tree.value;
result.next = oldIntList;
TreeList oldCur = cur;
cur = new TreeList();
cur.value = tree.left;
cur.next = oldCur;
oldCur.value = tree.right;
} else cur = cur.next;
}
if (cur != list) {}
return result;
}

public static void main(String[] args) {
Random.args = args;
int listLength = Random.random();
TreeList list = null;
for (int i = listLength; i > 0; i--) {
Tree tree = Tree.createTree();
list = new TreeList(tree, list);
}

flatten(list);
}
}


public class IntList {
int value;
IntList next;

public IntList(int value, IntList next) {
this.value = value;
this.next = next;
}

public IntList() {
}

public static IntList createList() {
IntList result = null;
int length = Random.random();
while (length > 0) {
result = new IntList(Random.random(), result);
length--;
}
return result;
}
}


public class Random {
static String[] args;
static int index = 0;

public static int random() {
String string = args[index];
index++;
return string.length();
}
}


public class Tree {
Tree left;
Tree right;
int value;

public Tree(Tree l, Tree r) {
this.left = l;
this.right = r;
}

public Tree() {
}

public static Tree createNode() {
Tree result = new Tree();
result.value = Random.random();
return result;
}

public static Tree createTree() {
int counter = Random.random();
if (counter == 0) {
return null;
}
Tree result = createNode();
Tree t = result;

while (counter > 0) {
int branch = Random.random();
if (branch > 0) {
if (t.left == null) {
t.left = createNode();
t = result;
} else {
t = t.left;
}
} else {
if (t.right == null) {
t.right = createNode();
t = result;
} else {
t = t.right;
}
}
counter--;
}

return result;
}
public static void main(String[] args) {
Random.args = args;
createTree();
}
}


public class TreeList {
Tree value;
TreeList next;

public TreeList(Tree value, TreeList next) {
this.value = value;
this.next = next;
}

public TreeList() {
}
}


(1) JBC2FIG (SOUND transformation)

Constructed FIGraph.

(2) Obligation:

FIGraph based on JBC Program:
FlattenRTA.main([Ljava/lang/String;)V: Graph of 178 nodes with 1 SCC.

FlattenRTA.flatten(LTreeList;)LIntList;: Graph of 124 nodes with 1 SCC.

Tree.createTree()LTree;: Graph of 400 nodes with 1 SCC.

Tree.createNode()LTree;: Graph of 104 nodes with 0 SCCs.


(3) FIGtoITRSProof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Logs:


Log for SCC 0:

Generated 161 rules for P and 237 rules for R.


Combined rules. Obtained 23 rules for P and 37 rules for R.


Filtered ground terms:


Tree(x1, x2, x3) → Tree(x2, x3)
22017_0_random_ArrayAccess(x1, x2, x3) → 22017_0_random_ArrayAccess(x2, x3)
Cond_25321_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25321_1_createTree_InvokeMethod(x1, x3, x4, x5)
2619_0_createNode_Return(x1, x2) → 2619_0_createNode_Return
25321_0_createNode_New(x1) → 25321_0_createNode_New
22181_0_random_IntArithmetic(x1, x2, x3, x4) → 22181_0_random_IntArithmetic(x2, x3)
Cond_25669_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25669_1_createTree_InvokeMethod(x1, x3, x4, x5)
25669_0_createNode_New(x1) → 25669_0_createNode_New
Cond_25288_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25288_1_createTree_InvokeMethod(x1, x3)
25288_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25288_1_createTree_InvokeMethod(x1, x2)
25288_0_createNode_New(x1) → 25288_0_createNode_New
Cond_22181_1_createTree_InvokeMethod9(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod9(x1, x2, x3)
Cond_25942_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25942_1_createTree_InvokeMethod(x1, x3, x4, x5)
25942_0_createNode_New(x1) → 25942_0_createNode_New
Cond_25205_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25205_1_createTree_InvokeMethod(x1, x3, x4, x5)
25205_0_createNode_New(x1) → 25205_0_createNode_New
Cond_25512_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25512_1_createTree_InvokeMethod(x1, x3, x4, x5)
25512_0_createNode_New(x1) → 25512_0_createNode_New
Cond_25177_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25177_1_createTree_InvokeMethod(x1, x3)
25177_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25177_1_createTree_InvokeMethod(x1, x2)
25177_0_createNode_New(x1) → 25177_0_createNode_New
Cond_22181_1_createTree_InvokeMethod2(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod2(x1, x2, x3)
Cond_25776_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25776_1_createTree_InvokeMethod(x1, x3, x4, x5)
25776_0_createNode_New(x1) → 25776_0_createNode_New
2773_0_createNode_InvokeMethod(x1, x2, x3, x4) → 2773_0_createNode_InvokeMethod
java.lang.ArrayIndexOutOfBoundsException(x1) → java.lang.ArrayIndexOutOfBoundsException
java.lang.IndexOutOfBoundsException(x1) → java.lang.IndexOutOfBoundsException
Cond_2282_1_createNode_InvokeMethod2(x1, x2, x3, x4) → Cond_2282_1_createNode_InvokeMethod2(x1, x2)
2282_0_random_ArrayAccess(x1, x2, x3) → 2282_0_random_ArrayAccess(x2, x3)
2282_1_createNode_InvokeMethod(x1, x2, x3) → 2282_1_createNode_InvokeMethod(x1)
Cond_2373_1_createNode_InvokeMethod1(x1, x2, x3, x4) → Cond_2373_1_createNode_InvokeMethod1(x1, x2)
2373_0_random_IntArithmetic(x1, x2, x3, x4) → 2373_0_random_IntArithmetic(x2, x3)
2373_1_createNode_InvokeMethod(x1, x2, x3) → 2373_1_createNode_InvokeMethod(x1)
2933_0_createNode_InvokeMethod(x1, x2, x3, x4) → 2933_0_createNode_InvokeMethod
java.lang.NullPointerException(x1) → java.lang.NullPointerException
Cond_2373_1_createNode_InvokeMethod(x1, x2, x3, x4) → Cond_2373_1_createNode_InvokeMethod(x1, x2)
Cond_2282_1_createNode_InvokeMethod1(x1, x2, x3, x4) → Cond_2282_1_createNode_InvokeMethod1(x1, x2)
2813_0_createNode_InvokeMethod(x1, x2, x3, x4) → 2813_0_createNode_InvokeMethod
Cond_2282_1_createNode_InvokeMethod(x1, x2, x3, x4) → Cond_2282_1_createNode_InvokeMethod(x1, x2)
25727_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 25727_0_createTree_InvokeMethod(x2, x3, x4, x5)
26060_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 26060_0_createTree_InvokeMethod(x2, x3, x4, x5)
25664_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 25664_0_createTree_InvokeMethod(x2, x3)
26307_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 26307_0_createTree_InvokeMethod(x2, x3, x4, x5)
25572_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 25572_0_createTree_InvokeMethod(x2, x3, x4, x5)
25886_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 25886_0_createTree_InvokeMethod(x2, x3, x4, x5)
25508_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 25508_0_createTree_InvokeMethod(x2, x3)
26213_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 26213_0_createTree_InvokeMethod(x2, x3, x4, x5)
25328_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25328_0_createNode_InvokeMethod
25676_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25676_0_createNode_InvokeMethod
25294_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25294_0_createNode_InvokeMethod
25963_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25963_0_createNode_InvokeMethod
25211_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25211_0_createNode_InvokeMethod
25519_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25519_0_createNode_InvokeMethod
25183_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25183_0_createNode_InvokeMethod
25795_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25795_0_createNode_InvokeMethod

Filtered all non-integer terms:


22017_1_createTree_InvokeMethod(x1, x2, x3, x4) → 22017_1_createTree_InvokeMethod(x1, x2)
Cond_22017_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_22017_1_createTree_InvokeMethod(x1, x2, x3)
22181_1_createTree_InvokeMethod(x1, x2, x3, x4) → 22181_1_createTree_InvokeMethod(x1, x2)
22181_0_random_IntArithmetic(x1, x2) → 22181_0_random_IntArithmetic(x2)
Tree(x1, x2) → Tree
Cond_22181_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod(x1, x2, x3)
Cond_22181_1_createTree_InvokeMethod1(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod1(x1, x2, x3)
25776_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25776_1_createTree_InvokeMethod(x1, x2)
Cond_25776_1_createTree_InvokeMethod(x1, x2, x3, x4) → Cond_25776_1_createTree_InvokeMethod(x1, x2)
Cond_22181_1_createTree_InvokeMethod3(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod3(x1, x2, x3)
Cond_22181_1_createTree_InvokeMethod4(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod4(x1, x2, x3)
25512_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25512_1_createTree_InvokeMethod(x1, x2)
Cond_25512_1_createTree_InvokeMethod(x1, x2, x3, x4) → Cond_25512_1_createTree_InvokeMethod(x1, x2)
Cond_22181_1_createTree_InvokeMethod5(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod5(x1, x2, x3)
Cond_22181_1_createTree_InvokeMethod6(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod6(x1, x2, x3)
25205_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25205_1_createTree_InvokeMethod(x1, x2)
Cond_25205_1_createTree_InvokeMethod(x1, x2, x3, x4) → Cond_25205_1_createTree_InvokeMethod(x1, x2)
Cond_22181_1_createTree_InvokeMethod7(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod7(x1, x2, x3)
Cond_22181_1_createTree_InvokeMethod8(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod8(x1, x2, x3)
25942_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25942_1_createTree_InvokeMethod(x1, x2)
Cond_25942_1_createTree_InvokeMethod(x1, x2, x3, x4) → Cond_25942_1_createTree_InvokeMethod(x1, x2)
Cond_22181_1_createTree_InvokeMethod10(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod10(x1, x2, x3)
Cond_22181_1_createTree_InvokeMethod11(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod11(x1, x2, x3)
25669_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25669_1_createTree_InvokeMethod(x1, x2)
Cond_25669_1_createTree_InvokeMethod(x1, x2, x3, x4) → Cond_25669_1_createTree_InvokeMethod(x1, x2)
Cond_22181_1_createTree_InvokeMethod12(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod12(x1, x2, x3)
Cond_22181_1_createTree_InvokeMethod13(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod13(x1, x2, x3)
25321_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25321_1_createTree_InvokeMethod(x1, x2)
Cond_25321_1_createTree_InvokeMethod(x1, x2, x3, x4) → Cond_25321_1_createTree_InvokeMethod(x1, x2)
26213_0_createTree_InvokeMethod(x1, x2, x3, x4) → 26213_0_createTree_InvokeMethod(x2)
25508_0_createTree_InvokeMethod(x1, x2) → 25508_0_createTree_InvokeMethod(x2)
25886_0_createTree_InvokeMethod(x1, x2, x3, x4) → 25886_0_createTree_InvokeMethod(x2)
25572_0_createTree_InvokeMethod(x1, x2, x3, x4) → 25572_0_createTree_InvokeMethod(x2)
26307_0_createTree_InvokeMethod(x1, x2, x3, x4) → 26307_0_createTree_InvokeMethod(x2)
25664_0_createTree_InvokeMethod(x1, x2) → 25664_0_createTree_InvokeMethod(x2)
26060_0_createTree_InvokeMethod(x1, x2, x3, x4) → 26060_0_createTree_InvokeMethod(x2)
25727_0_createTree_InvokeMethod(x1, x2, x3, x4) → 25727_0_createTree_InvokeMethod(x2)
2373_0_random_IntArithmetic(x1, x2) → 2373_0_random_IntArithmetic(x2)

Filtered all free variables:


22181_1_createTree_InvokeMethod(x1, x2) → 22181_1_createTree_InvokeMethod(x2)
Cond_22181_1_createTree_InvokeMethod(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod(x1, x3)
22017_1_createTree_InvokeMethod(x1, x2) → 22017_1_createTree_InvokeMethod(x2)
Cond_22181_1_createTree_InvokeMethod1(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod1(x1, x3)
Cond_22181_1_createTree_InvokeMethod2(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod2(x1, x3)
Cond_22181_1_createTree_InvokeMethod3(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod3(x1, x3)
Cond_22181_1_createTree_InvokeMethod4(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod4(x1, x3)
Cond_22181_1_createTree_InvokeMethod5(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod5(x1, x3)
Cond_22181_1_createTree_InvokeMethod6(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod6(x1, x3)
Cond_22181_1_createTree_InvokeMethod7(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod7(x1, x3)
Cond_22181_1_createTree_InvokeMethod8(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod8(x1, x3)
Cond_22181_1_createTree_InvokeMethod9(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod9(x1, x3)
Cond_22181_1_createTree_InvokeMethod10(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod10(x1, x3)
Cond_22181_1_createTree_InvokeMethod11(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod11(x1, x3)
Cond_22181_1_createTree_InvokeMethod12(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod12(x1, x3)
Cond_22181_1_createTree_InvokeMethod13(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod13(x1, x3)
Cond_22017_1_createTree_InvokeMethod(x1, x2, x3) → Cond_22017_1_createTree_InvokeMethod(x1, x3)
2282_0_random_ArrayAccess(x1, x2) → 2282_0_random_ArrayAccess
2282_1_createNode_InvokeMethod(x1) → 2282_1_createNode_InvokeMethod
2373_0_random_IntArithmetic(x1) → 2373_0_random_IntArithmetic

Filtered ground terms:


Cond_2282_1_createNode_InvokeMethod2(x1, x2) → Cond_2282_1_createNode_InvokeMethod2(x1)
Cond_2373_1_createNode_InvokeMethod1(x1, x2) → Cond_2373_1_createNode_InvokeMethod1(x1)
2373_1_createNode_InvokeMethod(x1) → 2373_1_createNode_InvokeMethod
Cond_2373_1_createNode_InvokeMethod(x1, x2) → Cond_2373_1_createNode_InvokeMethod(x1)
Cond_2282_1_createNode_InvokeMethod1(x1, x2) → Cond_2282_1_createNode_InvokeMethod1(x1)
Cond_2282_1_createNode_InvokeMethod(x1, x2) → Cond_2282_1_createNode_InvokeMethod(x1)

Combined rules. Obtained 17 rules for P and 36 rules for R.


Finished conversion. Obtained 17 rules for P and 36 rules for R. System has predefined symbols.




Log for SCC 1:

Generated 108 rules for P and 10 rules for R.


Combined rules. Obtained 4 rules for P and 2 rules for R.


Filtered ground terms:


4679_0_flatten_NULL(x1, x2, x3, x4, x5) → 4679_0_flatten_NULL(x2, x3, x4, x5)
TreeList(x1, x2, x3) → TreeList(x2, x3)
IntList(x1) → IntList
Tree(x1, x2, x3, x4) → Tree(x2, x3, x4)
4985_0_flatten_Return(x1, x2) → 4985_0_flatten_Return(x2)
4983_0_flatten_Return(x1, x2) → 4983_0_flatten_Return(x2)

Filtered duplicate args:


4679_0_flatten_NULL(x1, x2, x3, x4) → 4679_0_flatten_NULL(x1, x3, x4)

Filtered unneeded arguments:


4679_0_flatten_NULL(x1, x2, x3) → 4679_0_flatten_NULL(x1, x3)

Filtered all free variables:


4983_0_flatten_Return(x1) → 4983_0_flatten_Return
4985_0_flatten_Return(x1) → 4985_0_flatten_Return

Finished conversion. Obtained 4 rules for P and 2 rules for R. System has no predefined symbols.




Log for SCC 2:

Generated 47 rules for P and 691 rules for R.


Combined rules. Obtained 2 rules for P and 93 rules for R.


Filtered ground terms:


TreeList(x1) → TreeList
7513_0_createTree_InvokeMethod(x1) → 7513_0_createTree_InvokeMethod
Cond_7513_1_main_InvokeMethod1(x1, x2, x3, x4) → Cond_7513_1_main_InvokeMethod1(x1, x3, x4)
Tree(x1) → Tree
21908_0_createTree_Return(x1, x2) → 21908_0_createTree_Return
Cond_7513_1_main_InvokeMethod(x1, x2, x3, x4) → Cond_7513_1_main_InvokeMethod(x1, x3, x4)
1974_0_createTree_Return(x1, x2, x3) → 1974_0_createTree_Return
21887_0_createTree_LE(x1, x2, x3, x4, x5) → 21887_0_createTree_LE(x2, x4, x5)
Cond_25446_0_createTree_FieldAccess(x1, x2, x3, x4, x5) → Cond_25446_0_createTree_FieldAccess(x1, x3)
25446_0_createTree_FieldAccess(x1, x2, x3, x4) → 25446_0_createTree_FieldAccess(x2)
Cond_25511_0_createTree_Store(x1, x2, x3, x4, x5) → Cond_25511_0_createTree_Store(x1, x3, x5)
25511_0_createTree_Store(x1, x2, x3, x4) → 25511_0_createTree_Store(x2, x4)
Cond_25605_0_createTree_FieldAccess(x1, x2, x3, x4, x5) → Cond_25605_0_createTree_FieldAccess(x1, x3)
25605_0_createTree_FieldAccess(x1, x2, x3, x4) → 25605_0_createTree_FieldAccess(x2)
Cond_25668_0_createTree_Store(x1, x2, x3, x4, x5) → Cond_25668_0_createTree_Store(x1, x3, x5)
25668_0_createTree_Store(x1, x2, x3, x4) → 25668_0_createTree_Store(x2, x4)
2085_0_createTree_InvokeMethod(x1, x2) → 2085_0_createTree_InvokeMethod
java.lang.ArrayIndexOutOfBoundsException(x1) → java.lang.ArrayIndexOutOfBoundsException
java.lang.IndexOutOfBoundsException(x1) → java.lang.IndexOutOfBoundsException
1569_0_random_ArrayAccess(x1, x2, x3) → 1569_0_random_ArrayAccess(x2, x3)
24353_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 24353_0_createTree_InvokeMethod(x3, x5)
Cond_21978_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_21978_1_createTree_InvokeMethod(x1, x2, x3, x5)
21978_0_random_ArrayAccess(x1, x2, x3) → 21978_0_random_ArrayAccess(x2, x3)
21978_1_createTree_InvokeMethod(x1, x2, x3, x4) → 21978_1_createTree_InvokeMethod(x1, x2, x4)
26213_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 26213_0_createTree_InvokeMethod(x2, x3)
java.lang.NullPointerException(x1) → java.lang.NullPointerException
25776_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25776_1_createTree_InvokeMethod(x1, x2)
2933_0_createNode_InvokeMethod(x1, x2, x3, x4) → 2933_0_createNode_InvokeMethod
2813_0_createNode_InvokeMethod(x1, x2, x3, x4) → 2813_0_createNode_InvokeMethod
Cond_25776_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25776_1_createTree_InvokeMethod(x1, x3)
2619_0_createNode_Return(x1, x2) → 2619_0_createNode_Return
2282_0_random_ArrayAccess(x1, x2, x3) → 2282_0_random_ArrayAccess(x2, x3)
2282_1_createNode_InvokeMethod(x1, x2, x3) → 2282_1_createNode_InvokeMethod(x1)
23403_0_createTree_LE(x1, x2, x3, x4, x5) → 23403_0_createTree_LE(x2, x4, x5)
25795_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25795_0_createNode_InvokeMethod
Cond_25177_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25177_1_createTree_InvokeMethod(x1, x3)
25177_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25177_1_createTree_InvokeMethod(x1, x2)
25508_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 25508_0_createTree_InvokeMethod(x2, x3)
25183_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25183_0_createNode_InvokeMethod
Cond_25512_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25512_1_createTree_InvokeMethod(x1, x3)
25512_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25512_1_createTree_InvokeMethod(x1, x2)
25886_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 25886_0_createTree_InvokeMethod(x2, x3)
25519_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25519_0_createNode_InvokeMethod
Cond_23403_0_createTree_LE11(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE11(x1, x3)
Cond_25205_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25205_1_createTree_InvokeMethod(x1, x3)
25205_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25205_1_createTree_InvokeMethod(x1, x2)
25572_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 25572_0_createTree_InvokeMethod(x2, x3)
25211_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25211_0_createNode_InvokeMethod
26307_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 26307_0_createTree_InvokeMethod(x2, x3)
25942_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25942_1_createTree_InvokeMethod(x1, x2)
Cond_25942_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25942_1_createTree_InvokeMethod(x1, x3)
Cond_23403_0_createTree_LE10(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE10(x1, x3, x6)
25963_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25963_0_createNode_InvokeMethod
Cond_23403_0_createTree_LE9(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE9(x1, x3, x6)
Cond_23403_0_createTree_LE8(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE8(x1, x3, x6)
Cond_25288_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25288_1_createTree_InvokeMethod(x1, x3)
25288_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25288_1_createTree_InvokeMethod(x1, x2)
25664_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 25664_0_createTree_InvokeMethod(x2, x3)
Cond_23403_0_createTree_LE7(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE7(x1, x3, x6)
25294_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25294_0_createNode_InvokeMethod
Cond_23403_0_createTree_LE6(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE6(x1, x3, x6)
Cond_23403_0_createTree_LE5(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE5(x1, x3, x6)
Cond_25669_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25669_1_createTree_InvokeMethod(x1, x3)
25669_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25669_1_createTree_InvokeMethod(x1, x2)
26060_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 26060_0_createTree_InvokeMethod(x2, x3)
Cond_23403_0_createTree_LE4(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE4(x1, x3, x6)
25676_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25676_0_createNode_InvokeMethod
Cond_23403_0_createTree_LE3(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE3(x1, x3, x6)
Cond_23403_0_createTree_LE2(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE2(x1, x3, x6)
2773_0_createNode_InvokeMethod(x1, x2, x3, x4) → 2773_0_createNode_InvokeMethod
Cond_2282_1_createNode_InvokeMethod2(x1, x2, x3, x4) → Cond_2282_1_createNode_InvokeMethod2(x1, x2)
Cond_2373_1_createNode_InvokeMethod1(x1, x2, x3, x4) → Cond_2373_1_createNode_InvokeMethod1(x1, x2)
2373_0_random_IntArithmetic(x1, x2, x3, x4) → 2373_0_random_IntArithmetic(x2, x3)
2373_1_createNode_InvokeMethod(x1, x2, x3) → 2373_1_createNode_InvokeMethod(x1)
Cond_2373_1_createNode_InvokeMethod(x1, x2, x3, x4) → Cond_2373_1_createNode_InvokeMethod(x1, x2)
Cond_2282_1_createNode_InvokeMethod1(x1, x2, x3, x4) → Cond_2282_1_createNode_InvokeMethod1(x1, x2)
Cond_2282_1_createNode_InvokeMethod(x1, x2, x3, x4) → Cond_2282_1_createNode_InvokeMethod(x1, x2)
25321_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25321_1_createTree_InvokeMethod(x1, x2)
Cond_23403_0_createTree_LE1(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE1(x1, x3, x6)
Cond_1902_0_createTree_NE1(x1, x2, x3, x4) → Cond_1902_0_createTree_NE1(x1, x3, x4)
1902_0_createTree_NE(x1, x2, x3) → 1902_0_createTree_NE(x2, x3)
Cond_25321_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25321_1_createTree_InvokeMethod(x1, x3)
25727_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 25727_0_createTree_InvokeMethod(x2, x3)
25328_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25328_0_createNode_InvokeMethod
Cond_23403_0_createTree_LE(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE(x1, x3, x6)
Cond_22181_1_createTree_InvokeMethod1(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod1(x1, x2, x3, x5)
22181_0_random_IntArithmetic(x1, x2, x3, x4) → 22181_0_random_IntArithmetic(x2, x3)
22181_1_createTree_InvokeMethod(x1, x2, x3, x4) → 22181_1_createTree_InvokeMethod(x1, x2, x4)
26395_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 26395_0_createTree_InvokeMethod(x3, x5)
Cond_22181_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod(x1, x2, x3, x5)
Cond_22017_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_22017_1_createTree_InvokeMethod(x1, x2, x3, x5)
22017_0_random_ArrayAccess(x1, x2, x3) → 22017_0_random_ArrayAccess(x2, x3)
22017_1_createTree_InvokeMethod(x1, x2, x3, x4) → 22017_1_createTree_InvokeMethod(x1, x2, x4)
24697_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 24697_0_createTree_InvokeMethod(x3, x5)
Cond_22030_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_22030_1_createTree_InvokeMethod(x1, x2, x3, x5)
22030_0_random_ArrayAccess(x1, x2, x3) → 22030_0_random_ArrayAccess(x2, x3)
22030_1_createTree_InvokeMethod(x1, x2, x3, x4) → 22030_1_createTree_InvokeMethod(x1, x2, x4)
Cond_21887_0_createTree_LE2(x1, x2, x3, x4, x5, x6) → Cond_21887_0_createTree_LE2(x1, x3, x5, x6)
Cond_21887_0_createTree_LE1(x1, x2, x3, x4, x5, x6) → Cond_21887_0_createTree_LE1(x1, x3, x5, x6)
Cond_21887_0_createTree_LE(x1, x2, x3, x4, x5, x6) → Cond_21887_0_createTree_LE(x1, x3, x5, x6)
2971_0_createTree_InvokeMethod(x1, x2, x3) → 2971_0_createTree_InvokeMethod(x2, x3)
2798_0_createNode_InvokeMethod(x1, x2, x3, x4) → 2798_0_createNode_InvokeMethod
Cond_1902_0_createTree_NE(x1, x2, x3, x4) → Cond_1902_0_createTree_NE(x1, x3, x4)
1663_0_random_IntArithmetic(x1, x2, x3, x4) → 1663_0_random_IntArithmetic(x2, x3)
2274_0_createTree_InvokeMethod(x1, x2) → 2274_0_createTree_InvokeMethod
1588_0_random_ArrayAccess(x1, x2, x3) → 1588_0_random_ArrayAccess(x2, x3)
2140_0_createTree_InvokeMethod(x1, x2) → 2140_0_createTree_InvokeMethod
1589_0_random_ArrayAccess(x1, x2, x3) → 1589_0_random_ArrayAccess(x2, x3)
7727_0_main_InvokeMethod(x1, x2, x3, x4) → 7727_0_main_InvokeMethod(x2, x3, x4)

Filtered duplicate args:


21887_0_createTree_LE(x1, x2, x3) → 21887_0_createTree_LE(x2, x3)
Cond_1902_0_createTree_NE1(x1, x2, x3) → Cond_1902_0_createTree_NE1(x1, x3)
1902_0_createTree_NE(x1, x2) → 1902_0_createTree_NE(x2)
Cond_21887_0_createTree_LE2(x1, x2, x3, x4) → Cond_21887_0_createTree_LE2(x1, x3, x4)
Cond_21887_0_createTree_LE1(x1, x2, x3, x4) → Cond_21887_0_createTree_LE1(x1, x3, x4)
Cond_21887_0_createTree_LE(x1, x2, x3, x4) → Cond_21887_0_createTree_LE(x1, x3, x4)
Cond_1902_0_createTree_NE(x1, x2, x3) → Cond_1902_0_createTree_NE(x1, x3)

Filtered unneeded arguments:


7513_1_main_InvokeMethod(x1, x2, x3) → 7513_1_main_InvokeMethod(x1, x3)
Cond_7513_1_main_InvokeMethod(x1, x2, x3) → Cond_7513_1_main_InvokeMethod(x1, x3)
Cond_7513_1_main_InvokeMethod1(x1, x2, x3) → Cond_7513_1_main_InvokeMethod1(x1, x3)
Cond_21887_0_createTree_LE(x1, x2, x3) → Cond_21887_0_createTree_LE(x1, x2)
Cond_21887_0_createTree_LE2(x1, x2, x3) → Cond_21887_0_createTree_LE2(x1, x2)
22030_1_createTree_InvokeMethod(x1, x2, x3) → 22030_1_createTree_InvokeMethod(x1, x3)
Cond_22030_1_createTree_InvokeMethod(x1, x2, x3, x4) → Cond_22030_1_createTree_InvokeMethod(x1, x2, x4)
Cond_22181_1_createTree_InvokeMethod(x1, x2, x3, x4) → Cond_22181_1_createTree_InvokeMethod(x1, x2, x4)
Cond_23403_0_createTree_LE(x1, x2, x3) → Cond_23403_0_createTree_LE(x1, x2)
Cond_23403_0_createTree_LE1(x1, x2, x3) → Cond_23403_0_createTree_LE1(x1, x2)
Cond_23403_0_createTree_LE2(x1, x2, x3) → Cond_23403_0_createTree_LE2(x1, x2)
Cond_23403_0_createTree_LE3(x1, x2, x3) → Cond_23403_0_createTree_LE3(x1, x2)
Cond_23403_0_createTree_LE4(x1, x2, x3) → Cond_23403_0_createTree_LE4(x1, x2)
Cond_23403_0_createTree_LE5(x1, x2, x3) → Cond_23403_0_createTree_LE5(x1, x2)
Cond_23403_0_createTree_LE6(x1, x2, x3) → Cond_23403_0_createTree_LE6(x1, x2)
Cond_23403_0_createTree_LE7(x1, x2, x3) → Cond_23403_0_createTree_LE7(x1, x2)
Cond_23403_0_createTree_LE8(x1, x2, x3) → Cond_23403_0_createTree_LE8(x1, x2)
Cond_23403_0_createTree_LE9(x1, x2, x3) → Cond_23403_0_createTree_LE9(x1, x2)
Cond_23403_0_createTree_LE10(x1, x2, x3) → Cond_23403_0_createTree_LE10(x1, x2)
21978_1_createTree_InvokeMethod(x1, x2, x3) → 21978_1_createTree_InvokeMethod(x1, x3)
Cond_21978_1_createTree_InvokeMethod(x1, x2, x3, x4) → Cond_21978_1_createTree_InvokeMethod(x1, x2, x4)

Filtered all non-integer terms:


7727_0_main_InvokeMethod(x1, x2, x3) → 7727_0_main_InvokeMethod(x2, x3)
2971_0_createTree_InvokeMethod(x1, x2) → 2971_0_createTree_InvokeMethod(x2)
24353_0_createTree_InvokeMethod(x1, x2) → 24353_0_createTree_InvokeMethod(x1)
24697_0_createTree_InvokeMethod(x1, x2) → 24697_0_createTree_InvokeMethod(x1)
25508_0_createTree_InvokeMethod(x1, x2) → 25508_0_createTree_InvokeMethod(x2)
25572_0_createTree_InvokeMethod(x1, x2) → 25572_0_createTree_InvokeMethod(x2)
25664_0_createTree_InvokeMethod(x1, x2) → 25664_0_createTree_InvokeMethod(x2)
25727_0_createTree_InvokeMethod(x1, x2) → 25727_0_createTree_InvokeMethod(x2)
25886_0_createTree_InvokeMethod(x1, x2) → 25886_0_createTree_InvokeMethod(x2)
26060_0_createTree_InvokeMethod(x1, x2) → 26060_0_createTree_InvokeMethod(x2)
26213_0_createTree_InvokeMethod(x1, x2) → 26213_0_createTree_InvokeMethod(x2)
26307_0_createTree_InvokeMethod(x1, x2) → 26307_0_createTree_InvokeMethod(x2)
26395_0_createTree_InvokeMethod(x1, x2) → 26395_0_createTree_InvokeMethod(x1)
1663_0_random_IntArithmetic(x1, x2) → 1663_0_random_IntArithmetic(x2)
21887_0_createTree_LE(x1, x2) → 21887_0_createTree_LE(x2)
Cond_21887_0_createTree_LE(x1, x2) → Cond_21887_0_createTree_LE(x1)
21978_1_createTree_InvokeMethod(x1, x2) → 21978_1_createTree_InvokeMethod(x1)
Cond_21887_0_createTree_LE1(x1, x2, x3) → Cond_21887_0_createTree_LE1(x1, x3)
22017_1_createTree_InvokeMethod(x1, x2, x3) → 22017_1_createTree_InvokeMethod(x1, x2)
Cond_21887_0_createTree_LE2(x1, x2) → Cond_21887_0_createTree_LE2(x1)
22030_1_createTree_InvokeMethod(x1, x2) → 22030_1_createTree_InvokeMethod(x1)
Cond_22030_1_createTree_InvokeMethod(x1, x2, x3) → Cond_22030_1_createTree_InvokeMethod(x1, x2)
Cond_22017_1_createTree_InvokeMethod(x1, x2, x3, x4) → Cond_22017_1_createTree_InvokeMethod(x1, x2, x3)
22181_1_createTree_InvokeMethod(x1, x2, x3) → 22181_1_createTree_InvokeMethod(x1, x2)
Cond_22181_1_createTree_InvokeMethod(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod(x1, x2)
22181_0_random_IntArithmetic(x1, x2) → 22181_0_random_IntArithmetic(x2)
Cond_22181_1_createTree_InvokeMethod1(x1, x2, x3, x4) → Cond_22181_1_createTree_InvokeMethod1(x1, x2, x3)
23403_0_createTree_LE(x1, x2, x3) → 23403_0_createTree_LE(x1, x3)
2373_0_random_IntArithmetic(x1, x2) → 2373_0_random_IntArithmetic(x2)
25668_0_createTree_Store(x1, x2) → 25668_0_createTree_Store(x1)
25511_0_createTree_Store(x1, x2) → 25511_0_createTree_Store(x1)
Cond_21978_1_createTree_InvokeMethod(x1, x2, x3) → Cond_21978_1_createTree_InvokeMethod(x1, x2)
Cond_25668_0_createTree_Store(x1, x2, x3) → Cond_25668_0_createTree_Store(x1, x2)
Cond_25511_0_createTree_Store(x1, x2, x3) → Cond_25511_0_createTree_Store(x1, x2)

Combined rules. Obtained 2 rules for P and 93 rules for R.


Finished conversion. Obtained 2 rules for P and 93 rules for R. System has predefined symbols.


(4) Complex Obligation (AND)

(5) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


The ITRS R consists of the following rules:
25776_0_createNode_New25795_0_createNode_InvokeMethod
25776_0_createNode_New25183_0_createNode_InvokeMethod
25776_0_createNode_New25519_0_createNode_InvokeMethod
25776_0_createNode_New25211_0_createNode_InvokeMethod
25776_0_createNode_New25963_0_createNode_InvokeMethod
25776_0_createNode_New25294_0_createNode_InvokeMethod
25776_0_createNode_New25676_0_createNode_InvokeMethod
25776_0_createNode_New25328_0_createNode_InvokeMethod
25776_0_createNode_New2282_1_createNode_InvokeMethod
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 26213_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 26213_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25508_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25508_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25886_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25886_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25572_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25572_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 26307_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 26307_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25664_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25664_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 26060_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 26060_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25727_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25727_0_createTree_InvokeMethod(x0)
2282_1_createNode_InvokeMethod2813_0_createNode_InvokeMethod
2282_1_createNode_InvokeMethod2773_0_createNode_InvokeMethod
2282_1_createNode_InvokeMethod2933_0_createNode_InvokeMethod
2282_1_createNode_InvokeMethod2619_0_createNode_Return

The integer pair graph contains the following rules and edges:
(0): 25776_1_CREATETREE_INVOKEMETHOD(2619_0_createNode_Return, x0[0]) → COND_25776_1_CREATETREE_INVOKEMETHOD(x0[0] > 0 && 0 < x0[0] + -1, 2619_0_createNode_Return, x0[0])
(1): COND_25776_1_CREATETREE_INVOKEMETHOD(TRUE, 2619_0_createNode_Return, x0[1]) → 22017_1_CREATETREE_INVOKEMETHOD(x0[1] + -1)
(2): 22017_1_CREATETREE_INVOKEMETHOD(x0[2]) → COND_22017_1_CREATETREE_INVOKEMETHOD(x0[2] > 0 && 0 < x0[2] + -1, x0[2])
(3): COND_22017_1_CREATETREE_INVOKEMETHOD(TRUE, x0[3]) → 22017_1_CREATETREE_INVOKEMETHOD(x0[3] + -1)
(4): 22017_1_CREATETREE_INVOKEMETHOD(x0[4]) → 25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0[4])

(0) -> (1), if ((x0[0] > 0 && 0 < x0[0] + -1* TRUE)∧(x0[0]* x0[1]))


(1) -> (2), if ((x0[1] + -1* x0[2]))


(1) -> (4), if ((x0[1] + -1* x0[4]))


(2) -> (3), if ((x0[2] > 0 && 0 < x0[2] + -1* TRUE)∧(x0[2]* x0[3]))


(3) -> (2), if ((x0[3] + -1* x0[2]))


(3) -> (4), if ((x0[3] + -1* x0[4]))


(4) -> (0), if ((25776_0_createNode_New* 2619_0_createNode_Return)∧(x0[4]* x0[0]))



The set Q consists of the following terms:
25776_0_createNode_New
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0)
2282_1_createNode_InvokeMethod

(6) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair 25776_1_CREATETREE_INVOKEMETHOD(2619_0_createNode_Return, x0) → COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0, 0), <(0, +(x0, -1))), 2619_0_createNode_Return, x0) the following chains were created:
  • We consider the chain 25776_1_CREATETREE_INVOKEMETHOD(2619_0_createNode_Return, x0[0]) → COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0]), COND_25776_1_CREATETREE_INVOKEMETHOD(TRUE, 2619_0_createNode_Return, x0[1]) → 22017_1_CREATETREE_INVOKEMETHOD(+(x0[1], -1)) which results in the following constraint:

    (1)    (&&(>(x0[0], 0), <(0, +(x0[0], -1)))=TRUEx0[0]=x0[1]25776_1_CREATETREE_INVOKEMETHOD(2619_0_createNode_Return, x0[0])≥NonInfC∧25776_1_CREATETREE_INVOKEMETHOD(2619_0_createNode_Return, x0[0])≥COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])∧(UIncreasing(COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])), ≥))



    We simplified constraint (1) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (2)    (>(x0[0], 0)=TRUE<(0, +(x0[0], -1))=TRUE25776_1_CREATETREE_INVOKEMETHOD(2619_0_createNode_Return, x0[0])≥NonInfC∧25776_1_CREATETREE_INVOKEMETHOD(2619_0_createNode_Return, x0[0])≥COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])∧(UIncreasing(COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (x0[0] + [-1] ≥ 0∧x0[0] + [-2] ≥ 0 ⇒ (UIncreasing(COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])), ≥)∧[(-1)Bound*bni_37] + [(2)bni_37]x0[0] ≥ 0∧[(-1)bso_38] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (x0[0] + [-1] ≥ 0∧x0[0] + [-2] ≥ 0 ⇒ (UIncreasing(COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])), ≥)∧[(-1)Bound*bni_37] + [(2)bni_37]x0[0] ≥ 0∧[(-1)bso_38] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (x0[0] + [-1] ≥ 0∧x0[0] + [-2] ≥ 0 ⇒ (UIncreasing(COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])), ≥)∧[(-1)Bound*bni_37] + [(2)bni_37]x0[0] ≥ 0∧[(-1)bso_38] ≥ 0)



    We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (6)    (x0[0] ≥ 0∧[-1] + x0[0] ≥ 0 ⇒ (UIncreasing(COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])), ≥)∧[(-1)Bound*bni_37 + (2)bni_37] + [(2)bni_37]x0[0] ≥ 0∧[(-1)bso_38] ≥ 0)



    We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (7)    ([1] + x0[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])), ≥)∧[(-1)Bound*bni_37 + (4)bni_37] + [(2)bni_37]x0[0] ≥ 0∧[(-1)bso_38] ≥ 0)







For Pair COND_25776_1_CREATETREE_INVOKEMETHOD(TRUE, 2619_0_createNode_Return, x0) → 22017_1_CREATETREE_INVOKEMETHOD(+(x0, -1)) the following chains were created:
  • We consider the chain COND_25776_1_CREATETREE_INVOKEMETHOD(TRUE, 2619_0_createNode_Return, x0[1]) → 22017_1_CREATETREE_INVOKEMETHOD(+(x0[1], -1)) which results in the following constraint:

    (8)    (COND_25776_1_CREATETREE_INVOKEMETHOD(TRUE, 2619_0_createNode_Return, x0[1])≥NonInfC∧COND_25776_1_CREATETREE_INVOKEMETHOD(TRUE, 2619_0_createNode_Return, x0[1])≥22017_1_CREATETREE_INVOKEMETHOD(+(x0[1], -1))∧(UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[1], -1))), ≥))



    We simplified constraint (8) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (9)    ((UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[1], -1))), ≥)∧[1 + (-1)bso_40] ≥ 0)



    We simplified constraint (9) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (10)    ((UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[1], -1))), ≥)∧[1 + (-1)bso_40] ≥ 0)



    We simplified constraint (10) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (11)    ((UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[1], -1))), ≥)∧[1 + (-1)bso_40] ≥ 0)



    We simplified constraint (11) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (12)    ((UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[1], -1))), ≥)∧0 = 0∧[1 + (-1)bso_40] ≥ 0)







For Pair 22017_1_CREATETREE_INVOKEMETHOD(x0) → COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0, 0), <(0, +(x0, -1))), x0) the following chains were created:
  • We consider the chain 22017_1_CREATETREE_INVOKEMETHOD(x0[2]) → COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2]), COND_22017_1_CREATETREE_INVOKEMETHOD(TRUE, x0[3]) → 22017_1_CREATETREE_INVOKEMETHOD(+(x0[3], -1)) which results in the following constraint:

    (13)    (&&(>(x0[2], 0), <(0, +(x0[2], -1)))=TRUEx0[2]=x0[3]22017_1_CREATETREE_INVOKEMETHOD(x0[2])≥NonInfC∧22017_1_CREATETREE_INVOKEMETHOD(x0[2])≥COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])∧(UIncreasing(COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])), ≥))



    We simplified constraint (13) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (14)    (>(x0[2], 0)=TRUE<(0, +(x0[2], -1))=TRUE22017_1_CREATETREE_INVOKEMETHOD(x0[2])≥NonInfC∧22017_1_CREATETREE_INVOKEMETHOD(x0[2])≥COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])∧(UIncreasing(COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])), ≥))



    We simplified constraint (14) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (15)    (x0[2] + [-1] ≥ 0∧x0[2] + [-2] ≥ 0 ⇒ (UIncreasing(COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])), ≥)∧[bni_41 + (-1)Bound*bni_41] + [(2)bni_41]x0[2] ≥ 0∧[(-1)bso_42] ≥ 0)



    We simplified constraint (15) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (16)    (x0[2] + [-1] ≥ 0∧x0[2] + [-2] ≥ 0 ⇒ (UIncreasing(COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])), ≥)∧[bni_41 + (-1)Bound*bni_41] + [(2)bni_41]x0[2] ≥ 0∧[(-1)bso_42] ≥ 0)



    We simplified constraint (16) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (17)    (x0[2] + [-1] ≥ 0∧x0[2] + [-2] ≥ 0 ⇒ (UIncreasing(COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])), ≥)∧[bni_41 + (-1)Bound*bni_41] + [(2)bni_41]x0[2] ≥ 0∧[(-1)bso_42] ≥ 0)



    We simplified constraint (17) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (18)    (x0[2] ≥ 0∧[-1] + x0[2] ≥ 0 ⇒ (UIncreasing(COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])), ≥)∧[(3)bni_41 + (-1)Bound*bni_41] + [(2)bni_41]x0[2] ≥ 0∧[(-1)bso_42] ≥ 0)



    We simplified constraint (18) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (19)    ([1] + x0[2] ≥ 0∧x0[2] ≥ 0 ⇒ (UIncreasing(COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])), ≥)∧[(5)bni_41 + (-1)Bound*bni_41] + [(2)bni_41]x0[2] ≥ 0∧[(-1)bso_42] ≥ 0)







For Pair COND_22017_1_CREATETREE_INVOKEMETHOD(TRUE, x0) → 22017_1_CREATETREE_INVOKEMETHOD(+(x0, -1)) the following chains were created:
  • We consider the chain COND_22017_1_CREATETREE_INVOKEMETHOD(TRUE, x0[3]) → 22017_1_CREATETREE_INVOKEMETHOD(+(x0[3], -1)) which results in the following constraint:

    (20)    (COND_22017_1_CREATETREE_INVOKEMETHOD(TRUE, x0[3])≥NonInfC∧COND_22017_1_CREATETREE_INVOKEMETHOD(TRUE, x0[3])≥22017_1_CREATETREE_INVOKEMETHOD(+(x0[3], -1))∧(UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[3], -1))), ≥))



    We simplified constraint (20) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (21)    ((UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[3], -1))), ≥)∧[2 + (-1)bso_44] ≥ 0)



    We simplified constraint (21) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (22)    ((UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[3], -1))), ≥)∧[2 + (-1)bso_44] ≥ 0)



    We simplified constraint (22) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (23)    ((UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[3], -1))), ≥)∧[2 + (-1)bso_44] ≥ 0)



    We simplified constraint (23) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (24)    ((UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[3], -1))), ≥)∧0 = 0∧[2 + (-1)bso_44] ≥ 0)







For Pair 22017_1_CREATETREE_INVOKEMETHOD(x0) → 25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0) the following chains were created:
  • We consider the chain 22017_1_CREATETREE_INVOKEMETHOD(x0[4]) → 25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0[4]) which results in the following constraint:

    (25)    (22017_1_CREATETREE_INVOKEMETHOD(x0[4])≥NonInfC∧22017_1_CREATETREE_INVOKEMETHOD(x0[4])≥25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0[4])∧(UIncreasing(25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0[4])), ≥))



    We simplified constraint (25) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (26)    ((UIncreasing(25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0[4])), ≥)∧[1 + (-1)bso_46] ≥ 0)



    We simplified constraint (26) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (27)    ((UIncreasing(25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0[4])), ≥)∧[1 + (-1)bso_46] ≥ 0)



    We simplified constraint (27) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (28)    ((UIncreasing(25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0[4])), ≥)∧[1 + (-1)bso_46] ≥ 0)



    We simplified constraint (28) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (29)    ((UIncreasing(25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0[4])), ≥)∧0 = 0∧[1 + (-1)bso_46] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 25776_1_CREATETREE_INVOKEMETHOD(2619_0_createNode_Return, x0) → COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0, 0), <(0, +(x0, -1))), 2619_0_createNode_Return, x0)
    • ([1] + x0[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])), ≥)∧[(-1)Bound*bni_37 + (4)bni_37] + [(2)bni_37]x0[0] ≥ 0∧[(-1)bso_38] ≥ 0)

  • COND_25776_1_CREATETREE_INVOKEMETHOD(TRUE, 2619_0_createNode_Return, x0) → 22017_1_CREATETREE_INVOKEMETHOD(+(x0, -1))
    • ((UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[1], -1))), ≥)∧0 = 0∧[1 + (-1)bso_40] ≥ 0)

  • 22017_1_CREATETREE_INVOKEMETHOD(x0) → COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0, 0), <(0, +(x0, -1))), x0)
    • ([1] + x0[2] ≥ 0∧x0[2] ≥ 0 ⇒ (UIncreasing(COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])), ≥)∧[(5)bni_41 + (-1)Bound*bni_41] + [(2)bni_41]x0[2] ≥ 0∧[(-1)bso_42] ≥ 0)

  • COND_22017_1_CREATETREE_INVOKEMETHOD(TRUE, x0) → 22017_1_CREATETREE_INVOKEMETHOD(+(x0, -1))
    • ((UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[3], -1))), ≥)∧0 = 0∧[2 + (-1)bso_44] ≥ 0)

  • 22017_1_CREATETREE_INVOKEMETHOD(x0) → 25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0)
    • ((UIncreasing(25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0[4])), ≥)∧0 = 0∧[1 + (-1)bso_46] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(25776_0_createNode_New) = [-1]   
POL(25795_0_createNode_InvokeMethod) = [-1]   
POL(25183_0_createNode_InvokeMethod) = [-1]   
POL(25519_0_createNode_InvokeMethod) = [-1]   
POL(25211_0_createNode_InvokeMethod) = [-1]   
POL(25963_0_createNode_InvokeMethod) = [-1]   
POL(25294_0_createNode_InvokeMethod) = [-1]   
POL(25676_0_createNode_InvokeMethod) = [-1]   
POL(25328_0_createNode_InvokeMethod) = [-1]   
POL(2282_1_createNode_InvokeMethod) = [-1]   
POL(25776_1_createTree_InvokeMethod(x1, x2)) = [-1]   
POL(2813_0_createNode_InvokeMethod) = [-1]   
POL(26213_0_createTree_InvokeMethod(x1)) = [-1]   
POL(2933_0_createNode_InvokeMethod) = [-1]   
POL(25508_0_createTree_InvokeMethod(x1)) = [-1]   
POL(25886_0_createTree_InvokeMethod(x1)) = [-1]   
POL(25572_0_createTree_InvokeMethod(x1)) = [-1]   
POL(26307_0_createTree_InvokeMethod(x1)) = [-1]   
POL(25664_0_createTree_InvokeMethod(x1)) = [-1]   
POL(26060_0_createTree_InvokeMethod(x1)) = [-1]   
POL(25727_0_createTree_InvokeMethod(x1)) = [-1]   
POL(2773_0_createNode_InvokeMethod) = [-1]   
POL(2619_0_createNode_Return) = [-1]   
POL(25776_1_CREATETREE_INVOKEMETHOD(x1, x2)) = [2]x2   
POL(COND_25776_1_CREATETREE_INVOKEMETHOD(x1, x2, x3)) = [2]x3   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(0) = 0   
POL(<(x1, x2)) = [-1]   
POL(+(x1, x2)) = x1 + x2   
POL(-1) = [-1]   
POL(22017_1_CREATETREE_INVOKEMETHOD(x1)) = [1] + [2]x1   
POL(COND_22017_1_CREATETREE_INVOKEMETHOD(x1, x2)) = [1] + [2]x2   

The following pairs are in P>:

COND_25776_1_CREATETREE_INVOKEMETHOD(TRUE, 2619_0_createNode_Return, x0[1]) → 22017_1_CREATETREE_INVOKEMETHOD(+(x0[1], -1))
COND_22017_1_CREATETREE_INVOKEMETHOD(TRUE, x0[3]) → 22017_1_CREATETREE_INVOKEMETHOD(+(x0[3], -1))
22017_1_CREATETREE_INVOKEMETHOD(x0[4]) → 25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0[4])

The following pairs are in Pbound:

25776_1_CREATETREE_INVOKEMETHOD(2619_0_createNode_Return, x0[0]) → COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])
22017_1_CREATETREE_INVOKEMETHOD(x0[2]) → COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])

The following pairs are in P:

25776_1_CREATETREE_INVOKEMETHOD(2619_0_createNode_Return, x0[0]) → COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])
22017_1_CREATETREE_INVOKEMETHOD(x0[2]) → COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])

There are no usable rules.

(7) Complex Obligation (AND)

(8) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


The ITRS R consists of the following rules:
25776_0_createNode_New25795_0_createNode_InvokeMethod
25776_0_createNode_New25183_0_createNode_InvokeMethod
25776_0_createNode_New25519_0_createNode_InvokeMethod
25776_0_createNode_New25211_0_createNode_InvokeMethod
25776_0_createNode_New25963_0_createNode_InvokeMethod
25776_0_createNode_New25294_0_createNode_InvokeMethod
25776_0_createNode_New25676_0_createNode_InvokeMethod
25776_0_createNode_New25328_0_createNode_InvokeMethod
25776_0_createNode_New2282_1_createNode_InvokeMethod
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 26213_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 26213_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25508_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25508_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25886_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25886_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25572_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25572_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 26307_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 26307_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25664_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25664_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 26060_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 26060_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25727_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25727_0_createTree_InvokeMethod(x0)
2282_1_createNode_InvokeMethod2813_0_createNode_InvokeMethod
2282_1_createNode_InvokeMethod2773_0_createNode_InvokeMethod
2282_1_createNode_InvokeMethod2933_0_createNode_InvokeMethod
2282_1_createNode_InvokeMethod2619_0_createNode_Return

The integer pair graph contains the following rules and edges:
(0): 25776_1_CREATETREE_INVOKEMETHOD(2619_0_createNode_Return, x0[0]) → COND_25776_1_CREATETREE_INVOKEMETHOD(x0[0] > 0 && 0 < x0[0] + -1, 2619_0_createNode_Return, x0[0])
(2): 22017_1_CREATETREE_INVOKEMETHOD(x0[2]) → COND_22017_1_CREATETREE_INVOKEMETHOD(x0[2] > 0 && 0 < x0[2] + -1, x0[2])


The set Q consists of the following terms:
25776_0_createNode_New
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0)
2282_1_createNode_InvokeMethod

(9) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes.

(10) TRUE

(11) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


The ITRS R consists of the following rules:
25776_0_createNode_New25795_0_createNode_InvokeMethod
25776_0_createNode_New25183_0_createNode_InvokeMethod
25776_0_createNode_New25519_0_createNode_InvokeMethod
25776_0_createNode_New25211_0_createNode_InvokeMethod
25776_0_createNode_New25963_0_createNode_InvokeMethod
25776_0_createNode_New25294_0_createNode_InvokeMethod
25776_0_createNode_New25676_0_createNode_InvokeMethod
25776_0_createNode_New25328_0_createNode_InvokeMethod
25776_0_createNode_New2282_1_createNode_InvokeMethod
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 26213_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 26213_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25508_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25508_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25886_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25886_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25572_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25572_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 26307_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 26307_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25664_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25664_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 26060_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 26060_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25727_0_createTree_InvokeMethod(x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25727_0_createTree_InvokeMethod(x0)
2282_1_createNode_InvokeMethod2813_0_createNode_InvokeMethod
2282_1_createNode_InvokeMethod2773_0_createNode_InvokeMethod
2282_1_createNode_InvokeMethod2933_0_createNode_InvokeMethod
2282_1_createNode_InvokeMethod2619_0_createNode_Return

The integer pair graph contains the following rules and edges:
(1): COND_25776_1_CREATETREE_INVOKEMETHOD(TRUE, 2619_0_createNode_Return, x0[1]) → 22017_1_CREATETREE_INVOKEMETHOD(x0[1] + -1)
(3): COND_22017_1_CREATETREE_INVOKEMETHOD(TRUE, x0[3]) → 22017_1_CREATETREE_INVOKEMETHOD(x0[3] + -1)
(4): 22017_1_CREATETREE_INVOKEMETHOD(x0[4]) → 25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0[4])

(1) -> (4), if ((x0[1] + -1* x0[4]))


(3) -> (4), if ((x0[3] + -1* x0[4]))



The set Q consists of the following terms:
25776_0_createNode_New
25776_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0)
25776_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0)
2282_1_createNode_InvokeMethod

(12) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes.

(13) TRUE

(14) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:
none


The ITRS R consists of the following rules:
4679_0_flatten_NULL(java.lang.Object(x0), NULL) → 4983_0_flatten_Return
4679_0_flatten_NULL(NULL, NULL) → 4985_0_flatten_Return

The integer pair graph contains the following rules and edges:
(0): 4679_0_FLATTEN_NULL(x0[0], java.lang.Object(TreeList(java.lang.Object(Tree(x1[0], x2[0], x3[0])), x4[0]))) → 4679_0_FLATTEN_NULL(x0[0], java.lang.Object(TreeList(x2[0], java.lang.Object(TreeList(x3[0], x4[0])))))
(1): 4679_0_FLATTEN_NULL(x0[1], java.lang.Object(TreeList(NULL, x1[1]))) → 4679_0_FLATTEN_NULL(x0[1], x1[1])
(2): 4679_0_FLATTEN_NULL(java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2])), java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2]))) → 4679_0_FLATTEN_NULL(java.lang.Object(TreeList(x2[2], x3[2])), java.lang.Object(TreeList(x1[2], java.lang.Object(TreeList(x2[2], x3[2])))))
(3): 4679_0_FLATTEN_NULL(java.lang.Object(TreeList(NULL, x0[3])), java.lang.Object(TreeList(NULL, x0[3]))) → 4679_0_FLATTEN_NULL(java.lang.Object(TreeList(NULL, x0[3])), x0[3])

(0) -> (0), if ((x0[0]* x0[0]')∧(java.lang.Object(TreeList(x2[0], java.lang.Object(TreeList(x3[0], x4[0])))) →* java.lang.Object(TreeList(java.lang.Object(Tree(x1[0]', x2[0]', x3[0]')), x4[0]'))))


(0) -> (1), if ((x0[0]* x0[1])∧(java.lang.Object(TreeList(x2[0], java.lang.Object(TreeList(x3[0], x4[0])))) →* java.lang.Object(TreeList(NULL, x1[1]))))


(0) -> (2), if ((x0[0]* java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2])))∧(java.lang.Object(TreeList(x2[0], java.lang.Object(TreeList(x3[0], x4[0])))) →* java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2]))))


(0) -> (3), if ((x0[0]* java.lang.Object(TreeList(NULL, x0[3])))∧(java.lang.Object(TreeList(x2[0], java.lang.Object(TreeList(x3[0], x4[0])))) →* java.lang.Object(TreeList(NULL, x0[3]))))


(1) -> (0), if ((x0[1]* x0[0])∧(x1[1]* java.lang.Object(TreeList(java.lang.Object(Tree(x1[0], x2[0], x3[0])), x4[0]))))


(1) -> (1), if ((x0[1]* x0[1]')∧(x1[1]* java.lang.Object(TreeList(NULL, x1[1]'))))


(1) -> (2), if ((x0[1]* java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2])))∧(x1[1]* java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2]))))


(1) -> (3), if ((x0[1]* java.lang.Object(TreeList(NULL, x0[3])))∧(x1[1]* java.lang.Object(TreeList(NULL, x0[3]))))


(2) -> (0), if ((java.lang.Object(TreeList(x2[2], x3[2])) →* x0[0])∧(java.lang.Object(TreeList(x1[2], java.lang.Object(TreeList(x2[2], x3[2])))) →* java.lang.Object(TreeList(java.lang.Object(Tree(x1[0], x2[0], x3[0])), x4[0]))))


(2) -> (1), if ((java.lang.Object(TreeList(x2[2], x3[2])) →* x0[1])∧(java.lang.Object(TreeList(x1[2], java.lang.Object(TreeList(x2[2], x3[2])))) →* java.lang.Object(TreeList(NULL, x1[1]))))


(2) -> (2), if ((java.lang.Object(TreeList(x2[2], x3[2])) →* java.lang.Object(TreeList(java.lang.Object(Tree(x0[2]', x1[2]', x2[2]')), x3[2]')))∧(java.lang.Object(TreeList(x1[2], java.lang.Object(TreeList(x2[2], x3[2])))) →* java.lang.Object(TreeList(java.lang.Object(Tree(x0[2]', x1[2]', x2[2]')), x3[2]'))))


(2) -> (3), if ((java.lang.Object(TreeList(x2[2], x3[2])) →* java.lang.Object(TreeList(NULL, x0[3])))∧(java.lang.Object(TreeList(x1[2], java.lang.Object(TreeList(x2[2], x3[2])))) →* java.lang.Object(TreeList(NULL, x0[3]))))


(3) -> (0), if ((java.lang.Object(TreeList(NULL, x0[3])) →* x0[0])∧(x0[3]* java.lang.Object(TreeList(java.lang.Object(Tree(x1[0], x2[0], x3[0])), x4[0]))))


(3) -> (1), if ((java.lang.Object(TreeList(NULL, x0[3])) →* x0[1])∧(x0[3]* java.lang.Object(TreeList(NULL, x1[1]))))


(3) -> (2), if ((java.lang.Object(TreeList(NULL, x0[3])) →* java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2])))∧(x0[3]* java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2]))))


(3) -> (3), if ((java.lang.Object(TreeList(NULL, x0[3])) →* java.lang.Object(TreeList(NULL, x0[3]')))∧(x0[3]* java.lang.Object(TreeList(NULL, x0[3]'))))



The set Q consists of the following terms:
4679_0_flatten_NULL(java.lang.Object(x0), NULL)
4679_0_flatten_NULL(NULL, NULL)

(15) IDPtoQDPProof (SOUND transformation)

Represented integers and predefined function symbols by Terms

(16) Obligation:

Q DP problem:
The TRS P consists of the following rules:

4679_0_FLATTEN_NULL(x0[0], java.lang.Object(TreeList(java.lang.Object(Tree(x1[0], x2[0], x3[0])), x4[0]))) → 4679_0_FLATTEN_NULL(x0[0], java.lang.Object(TreeList(x2[0], java.lang.Object(TreeList(x3[0], x4[0])))))
4679_0_FLATTEN_NULL(x0[1], java.lang.Object(TreeList(NULL, x1[1]))) → 4679_0_FLATTEN_NULL(x0[1], x1[1])
4679_0_FLATTEN_NULL(java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2])), java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2]))) → 4679_0_FLATTEN_NULL(java.lang.Object(TreeList(x2[2], x3[2])), java.lang.Object(TreeList(x1[2], java.lang.Object(TreeList(x2[2], x3[2])))))
4679_0_FLATTEN_NULL(java.lang.Object(TreeList(NULL, x0[3])), java.lang.Object(TreeList(NULL, x0[3]))) → 4679_0_FLATTEN_NULL(java.lang.Object(TreeList(NULL, x0[3])), x0[3])

The TRS R consists of the following rules:

4679_0_flatten_NULL(java.lang.Object(x0), NULL) → 4983_0_flatten_Return
4679_0_flatten_NULL(NULL, NULL) → 4985_0_flatten_Return

The set Q consists of the following terms:

4679_0_flatten_NULL(java.lang.Object(x0), NULL)
4679_0_flatten_NULL(NULL, NULL)

We have to consider all minimal (P,Q,R)-chains.

(17) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(18) Obligation:

Q DP problem:
The TRS P consists of the following rules:

4679_0_FLATTEN_NULL(x0[0], java.lang.Object(TreeList(java.lang.Object(Tree(x1[0], x2[0], x3[0])), x4[0]))) → 4679_0_FLATTEN_NULL(x0[0], java.lang.Object(TreeList(x2[0], java.lang.Object(TreeList(x3[0], x4[0])))))
4679_0_FLATTEN_NULL(x0[1], java.lang.Object(TreeList(NULL, x1[1]))) → 4679_0_FLATTEN_NULL(x0[1], x1[1])
4679_0_FLATTEN_NULL(java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2])), java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2]))) → 4679_0_FLATTEN_NULL(java.lang.Object(TreeList(x2[2], x3[2])), java.lang.Object(TreeList(x1[2], java.lang.Object(TreeList(x2[2], x3[2])))))
4679_0_FLATTEN_NULL(java.lang.Object(TreeList(NULL, x0[3])), java.lang.Object(TreeList(NULL, x0[3]))) → 4679_0_FLATTEN_NULL(java.lang.Object(TreeList(NULL, x0[3])), x0[3])

R is empty.
The set Q consists of the following terms:

4679_0_flatten_NULL(java.lang.Object(x0), NULL)
4679_0_flatten_NULL(NULL, NULL)

We have to consider all minimal (P,Q,R)-chains.

(19) QReductionProof (EQUIVALENT transformation)

We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

4679_0_flatten_NULL(java.lang.Object(x0), NULL)
4679_0_flatten_NULL(NULL, NULL)

(20) Obligation:

Q DP problem:
The TRS P consists of the following rules:

4679_0_FLATTEN_NULL(x0[0], java.lang.Object(TreeList(java.lang.Object(Tree(x1[0], x2[0], x3[0])), x4[0]))) → 4679_0_FLATTEN_NULL(x0[0], java.lang.Object(TreeList(x2[0], java.lang.Object(TreeList(x3[0], x4[0])))))
4679_0_FLATTEN_NULL(x0[1], java.lang.Object(TreeList(NULL, x1[1]))) → 4679_0_FLATTEN_NULL(x0[1], x1[1])
4679_0_FLATTEN_NULL(java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2])), java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2]))) → 4679_0_FLATTEN_NULL(java.lang.Object(TreeList(x2[2], x3[2])), java.lang.Object(TreeList(x1[2], java.lang.Object(TreeList(x2[2], x3[2])))))
4679_0_FLATTEN_NULL(java.lang.Object(TreeList(NULL, x0[3])), java.lang.Object(TreeList(NULL, x0[3]))) → 4679_0_FLATTEN_NULL(java.lang.Object(TreeList(NULL, x0[3])), x0[3])

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(21) UsableRulesReductionPairsProof (EQUIVALENT transformation)

By using the usable rules with reduction pair processor [LPAR04] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules [FROCOS05] can be oriented non-strictly. All non-usable rules are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well.

The following dependency pairs can be deleted:

4679_0_FLATTEN_NULL(x0[0], java.lang.Object(TreeList(java.lang.Object(Tree(x1[0], x2[0], x3[0])), x4[0]))) → 4679_0_FLATTEN_NULL(x0[0], java.lang.Object(TreeList(x2[0], java.lang.Object(TreeList(x3[0], x4[0])))))
4679_0_FLATTEN_NULL(x0[1], java.lang.Object(TreeList(NULL, x1[1]))) → 4679_0_FLATTEN_NULL(x0[1], x1[1])
4679_0_FLATTEN_NULL(java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2])), java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2]))) → 4679_0_FLATTEN_NULL(java.lang.Object(TreeList(x2[2], x3[2])), java.lang.Object(TreeList(x1[2], java.lang.Object(TreeList(x2[2], x3[2])))))
4679_0_FLATTEN_NULL(java.lang.Object(TreeList(NULL, x0[3])), java.lang.Object(TreeList(NULL, x0[3]))) → 4679_0_FLATTEN_NULL(java.lang.Object(TreeList(NULL, x0[3])), x0[3])
No rules are removed from R.

Used ordering: POLO with Polynomial interpretation [POLO]:

POL(4679_0_FLATTEN_NULL(x1, x2)) = x1 + 2·x2   
POL(NULL) = 0   
POL(Tree(x1, x2, x3)) = 2 + x1 + x2 + 2·x3   
POL(TreeList(x1, x2)) = 2 + x1 + x2   
POL(java.lang.Object(x1)) = 1 + x1   

(22) Obligation:

Q DP problem:
P is empty.
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(23) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(24) YES

(25) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
7513_0_createTree_InvokeMethod1569_1_createTree_InvokeMethod(1569_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
7513_0_createTree_InvokeMethod1588_1_createTree_InvokeMethod(1588_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
7513_0_createTree_InvokeMethod1589_1_createTree_InvokeMethod(1589_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
7513_1_main_InvokeMethod(2085_0_createTree_InvokeMethod, x1) → 7727_0_main_InvokeMethod(x0, x1)
7513_1_main_InvokeMethod(2140_0_createTree_InvokeMethod, x1) → 7727_0_main_InvokeMethod(x0, x1)
7513_1_main_InvokeMethod(2274_0_createTree_InvokeMethod, x1) → 7727_0_main_InvokeMethod(x0, x1)
7513_1_main_InvokeMethod(2971_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(24353_0_createTree_InvokeMethod(x0), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(24697_0_createTree_InvokeMethod(x0), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(25508_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(25572_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(25664_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(25727_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(25886_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(26060_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(26213_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(26307_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(26395_0_createTree_InvokeMethod(x0), x3) → 7727_0_main_InvokeMethod(x2, x3)
1589_1_createTree_InvokeMethod(1589_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_1589_1_createTree_InvokeMethod(x2 >= x0, 1589_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_1589_1_createTree_InvokeMethod(TRUE, 1589_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 2140_0_createTree_InvokeMethod
1588_1_createTree_InvokeMethod(1588_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_1588_1_createTree_InvokeMethod(x2 >= 0 && x2 < x0, 1588_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_1588_1_createTree_InvokeMethod(TRUE, 1588_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 1663_1_createTree_InvokeMethod(1663_0_random_IntArithmetic(x4))
1663_1_createTree_InvokeMethod(1663_0_random_IntArithmetic(x0)) → Cond_1663_1_createTree_InvokeMethod(x0 >= 0, 1663_0_random_IntArithmetic(x0))
Cond_1663_1_createTree_InvokeMethod(TRUE, 1663_0_random_IntArithmetic(x0)) → 2274_0_createTree_InvokeMethod
1663_1_createTree_InvokeMethod(1663_0_random_IntArithmetic(x1)) → Cond_1663_1_createTree_InvokeMethod1(x1 >= 0, 1663_0_random_IntArithmetic(x1))
Cond_1663_1_createTree_InvokeMethod1(TRUE, 1663_0_random_IntArithmetic(x1)) → 1902_0_createTree_NE(x3)
1902_0_createTree_NE(0) → 1974_0_createTree_Return
1902_0_createTree_NE(x0) → Cond_1902_0_createTree_NE(!(x0 = 0), x0)
Cond_1902_0_createTree_NE(TRUE, x0) → 1969_1_createTree_InvokeMethod(2798_0_createNode_InvokeMethod, x0)
1969_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 2971_0_createTree_InvokeMethod(x0)
1969_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 2971_0_createTree_InvokeMethod(x0)
1969_1_createTree_InvokeMethod(2619_0_createNode_Return, x0) → 21887_0_createTree_LE(x0)
21887_0_createTree_LE(0) → 21908_0_createTree_Return
21887_0_createTree_LE(x0) → Cond_21887_0_createTree_LE(x0 > 0, x0)
Cond_21887_0_createTree_LE(TRUE, x0) → 21978_1_createTree_InvokeMethod(21978_0_random_ArrayAccess(java.lang.Object(ARRAY(x2, x3)), x4))
21887_0_createTree_LE(x0) → Cond_21887_0_createTree_LE1(x0 > 0, x0)
Cond_21887_0_createTree_LE1(TRUE, x0) → 22017_1_createTree_InvokeMethod(22017_0_random_ArrayAccess(java.lang.Object(ARRAY(x2, x3)), x4), x0)
21887_0_createTree_LE(x0) → Cond_21887_0_createTree_LE2(x0 > 0, x0)
Cond_21887_0_createTree_LE2(TRUE, x0) → 22030_1_createTree_InvokeMethod(22030_0_random_ArrayAccess(java.lang.Object(ARRAY(x2, x3)), x4))
22030_1_createTree_InvokeMethod(22030_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_22030_1_createTree_InvokeMethod(x2 >= x0, 22030_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_22030_1_createTree_InvokeMethod(TRUE, 22030_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 24697_0_createTree_InvokeMethod(x3)
22017_1_createTree_InvokeMethod(22017_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2), x3) → Cond_22017_1_createTree_InvokeMethod(x2 >= 0 && x2 < x0, 22017_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2), x3)
Cond_22017_1_createTree_InvokeMethod(TRUE, 22017_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2), x3) → 22181_1_createTree_InvokeMethod(22181_0_random_IntArithmetic(x6), x3)
22181_1_createTree_InvokeMethod(22181_0_random_IntArithmetic(x0), x2) → Cond_22181_1_createTree_InvokeMethod(x0 >= 0, 22181_0_random_IntArithmetic(x0), x2)
Cond_22181_1_createTree_InvokeMethod(TRUE, 22181_0_random_IntArithmetic(x0), x2) → 26395_0_createTree_InvokeMethod(x2)
22181_1_createTree_InvokeMethod(22181_0_random_IntArithmetic(x1), x3) → Cond_22181_1_createTree_InvokeMethod1(x1 >= 0, 22181_0_random_IntArithmetic(x1), x3)
Cond_22181_1_createTree_InvokeMethod1(TRUE, 22181_0_random_IntArithmetic(x1), x3) → 23403_0_createTree_LE(x3, x5)
23403_0_createTree_LE(x0, x1) → Cond_23403_0_createTree_LE(x1 > 0, x0, x1)
Cond_23403_0_createTree_LE(TRUE, x0, x1) → 25321_1_createTree_InvokeMethod(25328_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25727_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25727_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2619_0_createNode_Return, x0) → Cond_25321_1_createTree_InvokeMethod(x0 > 0, 2619_0_createNode_Return, x0)
Cond_25321_1_createTree_InvokeMethod(TRUE, 2619_0_createNode_Return, x0) → 21887_0_createTree_LE(x0 + -1)
1902_0_createTree_NE(x0) → Cond_1902_0_createTree_NE1(!(x0 = 0), x0)
Cond_1902_0_createTree_NE1(TRUE, x0) → 1969_1_createTree_InvokeMethod(2282_1_createNode_InvokeMethod(2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x1, x2)), x3)), x0)
23403_0_createTree_LE(x0, x1) → Cond_23403_0_createTree_LE1(x1 > 0, x0, x1)
Cond_23403_0_createTree_LE1(TRUE, x0, x1) → 25321_1_createTree_InvokeMethod(2282_1_createNode_InvokeMethod(2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x2, x3)), x4)), x0)
2282_1_createNode_InvokeMethod(2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_2282_1_createNode_InvokeMethod(x2 >= x0, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_2282_1_createNode_InvokeMethod(TRUE, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 2813_0_createNode_InvokeMethod
2282_1_createNode_InvokeMethod(2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_2282_1_createNode_InvokeMethod1(x2 >= 1 && x2 < x0, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_2282_1_createNode_InvokeMethod1(TRUE, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 2373_1_createNode_InvokeMethod(2373_0_random_IntArithmetic(x4))
2373_1_createNode_InvokeMethod(2373_0_random_IntArithmetic(x0)) → Cond_2373_1_createNode_InvokeMethod(x0 > 0, 2373_0_random_IntArithmetic(x0))
Cond_2373_1_createNode_InvokeMethod(TRUE, 2373_0_random_IntArithmetic(x0)) → 2933_0_createNode_InvokeMethod
2373_1_createNode_InvokeMethod(2373_0_random_IntArithmetic(x1)) → Cond_2373_1_createNode_InvokeMethod1(x1 > 0, 2373_0_random_IntArithmetic(x1))
Cond_2373_1_createNode_InvokeMethod1(TRUE, 2373_0_random_IntArithmetic(x1)) → 2619_0_createNode_Return
2282_1_createNode_InvokeMethod(2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_2282_1_createNode_InvokeMethod2(x2 <= -1, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_2282_1_createNode_InvokeMethod2(TRUE, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 2773_0_createNode_InvokeMethod
23403_0_createTree_LE(x0, x1) → Cond_23403_0_createTree_LE2(x1 > 0 && x0 > 0, x0, x1)
Cond_23403_0_createTree_LE2(TRUE, x0, x1) → 21887_0_createTree_LE(x0 + -1)
23403_0_createTree_LE(x0, x1) → Cond_23403_0_createTree_LE3(x1 > 0, x0, x1)
Cond_23403_0_createTree_LE3(TRUE, x0, x1) → 25321_1_createTree_InvokeMethod(25676_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 26060_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 26060_0_createTree_InvokeMethod(x0)
23403_0_createTree_LE(x0, x1) → Cond_23403_0_createTree_LE5(x1 > 0, x0, x1)
Cond_23403_0_createTree_LE5(TRUE, x0, x1) → 25668_0_createTree_Store(x0)
23403_0_createTree_LE(x0, x1) → Cond_23403_0_createTree_LE6(x1 > 0, x0, x1)
Cond_23403_0_createTree_LE6(TRUE, x0, x1) → 25321_1_createTree_InvokeMethod(25294_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25664_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25664_0_createTree_InvokeMethod(x0)
23403_0_createTree_LE(x0, x1) → Cond_23403_0_createTree_LE9(x1 > 0, x0, x1)
Cond_23403_0_createTree_LE9(TRUE, x0, x1) → 25321_1_createTree_InvokeMethod(25963_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 26307_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 26307_0_createTree_InvokeMethod(x0)
23403_0_createTree_LE(x0, 0) → 25321_1_createTree_InvokeMethod(25211_0_createNode_InvokeMethod, x0)
23403_0_createTree_LE(x0, 0) → 25321_1_createTree_InvokeMethod(2282_1_createNode_InvokeMethod(2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x2, x3)), x4)), x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25572_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25572_0_createTree_InvokeMethod(x0)
23403_0_createTree_LE(x0, 0) → Cond_23403_0_createTree_LE11(x0 > 0, x0, 0)
Cond_23403_0_createTree_LE11(TRUE, x0, 0) → 21887_0_createTree_LE(x0 + -1)
23403_0_createTree_LE(x0, 0) → 25321_1_createTree_InvokeMethod(25519_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25886_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25886_0_createTree_InvokeMethod(x0)
23403_0_createTree_LE(x0, 0) → 25668_0_createTree_Store(x0)
23403_0_createTree_LE(x0, 0) → 25321_1_createTree_InvokeMethod(25183_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25508_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25508_0_createTree_InvokeMethod(x0)
23403_0_createTree_LE(x0, 0) → 25321_1_createTree_InvokeMethod(25795_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 26213_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 26213_0_createTree_InvokeMethod(x0)
21978_1_createTree_InvokeMethod(21978_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_21978_1_createTree_InvokeMethod(x2 <= -1, 21978_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_21978_1_createTree_InvokeMethod(TRUE, 21978_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 24353_0_createTree_InvokeMethod(x3)
1569_1_createTree_InvokeMethod(1569_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_1569_1_createTree_InvokeMethod(x2 <= -1, 1569_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_1569_1_createTree_InvokeMethod(TRUE, 1569_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 2085_0_createTree_InvokeMethod
25668_0_createTree_Store(x0) → Cond_25668_0_createTree_Store(x0 > 0, x0)
Cond_25668_0_createTree_Store(TRUE, x0) → 21887_0_createTree_LE(x0 + -1)

The integer pair graph contains the following rules and edges:
(0): 7513_1_MAIN_INVOKEMETHOD(1974_0_createTree_Return, x2[0]) → COND_7513_1_MAIN_INVOKEMETHOD(x2[0] > 0 && 0 < x2[0] + -1, 1974_0_createTree_Return, x2[0])
(1): COND_7513_1_MAIN_INVOKEMETHOD(TRUE, 1974_0_createTree_Return, x2[1]) → 7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, x2[1] + -1)
(2): 7513_1_MAIN_INVOKEMETHOD(21908_0_createTree_Return, x1[2]) → COND_7513_1_MAIN_INVOKEMETHOD1(x1[2] > 0 && 0 < x1[2] + -1, 21908_0_createTree_Return, x1[2])
(3): COND_7513_1_MAIN_INVOKEMETHOD1(TRUE, 21908_0_createTree_Return, x1[3]) → 7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, x1[3] + -1)

(0) -> (1), if ((x2[0] > 0 && 0 < x2[0] + -1* TRUE)∧(x2[0]* x2[1]))


(1) -> (0), if ((7513_0_createTree_InvokeMethod* 1974_0_createTree_Return)∧(x2[1] + -1* x2[0]))


(1) -> (2), if ((7513_0_createTree_InvokeMethod* 21908_0_createTree_Return)∧(x2[1] + -1* x1[2]))


(2) -> (3), if ((x1[2] > 0 && 0 < x1[2] + -1* TRUE)∧(x1[2]* x1[3]))


(3) -> (0), if ((7513_0_createTree_InvokeMethod* 1974_0_createTree_Return)∧(x1[3] + -1* x2[0]))


(3) -> (2), if ((7513_0_createTree_InvokeMethod* 21908_0_createTree_Return)∧(x1[3] + -1* x1[2]))



The set Q consists of the following terms:
7513_0_createTree_InvokeMethod
7513_1_main_InvokeMethod(2085_0_createTree_InvokeMethod, x0)
7513_1_main_InvokeMethod(2140_0_createTree_InvokeMethod, x0)
7513_1_main_InvokeMethod(2274_0_createTree_InvokeMethod, x0)
7513_1_main_InvokeMethod(2971_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(24353_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(24697_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(25508_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(25572_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(25664_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(25727_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(25886_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(26060_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(26213_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(26307_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(26395_0_createTree_InvokeMethod(x0), x1)
1589_1_createTree_InvokeMethod(1589_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_1589_1_createTree_InvokeMethod(TRUE, 1589_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
1588_1_createTree_InvokeMethod(1588_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_1588_1_createTree_InvokeMethod(TRUE, 1588_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
1663_1_createTree_InvokeMethod(1663_0_random_IntArithmetic(x0))
Cond_1663_1_createTree_InvokeMethod(TRUE, 1663_0_random_IntArithmetic(x0))
Cond_1663_1_createTree_InvokeMethod1(TRUE, 1663_0_random_IntArithmetic(x0))
1902_0_createTree_NE(x0)
Cond_1902_0_createTree_NE(TRUE, x0)
1969_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0)
1969_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0)
1969_1_createTree_InvokeMethod(2619_0_createNode_Return, x0)
21887_0_createTree_LE(x0)
Cond_21887_0_createTree_LE(TRUE, x0)
Cond_21887_0_createTree_LE1(TRUE, x0)
Cond_21887_0_createTree_LE2(TRUE, x0)
22030_1_createTree_InvokeMethod(22030_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_22030_1_createTree_InvokeMethod(TRUE, 22030_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
22017_1_createTree_InvokeMethod(22017_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2), x3)
Cond_22017_1_createTree_InvokeMethod(TRUE, 22017_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2), x3)
22181_1_createTree_InvokeMethod(22181_0_random_IntArithmetic(x0), x1)
Cond_22181_1_createTree_InvokeMethod(TRUE, 22181_0_random_IntArithmetic(x0), x1)
Cond_22181_1_createTree_InvokeMethod1(TRUE, 22181_0_random_IntArithmetic(x0), x1)
23403_0_createTree_LE(x0, x1)
Cond_23403_0_createTree_LE(TRUE, x0, x1)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2619_0_createNode_Return, x0)
Cond_25321_1_createTree_InvokeMethod(TRUE, 2619_0_createNode_Return, x0)
Cond_1902_0_createTree_NE1(TRUE, x0)
Cond_23403_0_createTree_LE1(TRUE, x0, x1)
2282_1_createNode_InvokeMethod(2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_2282_1_createNode_InvokeMethod(TRUE, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_2282_1_createNode_InvokeMethod1(TRUE, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
2373_1_createNode_InvokeMethod(2373_0_random_IntArithmetic(x0))
Cond_2373_1_createNode_InvokeMethod(TRUE, 2373_0_random_IntArithmetic(x0))
Cond_2373_1_createNode_InvokeMethod1(TRUE, 2373_0_random_IntArithmetic(x0))
Cond_2282_1_createNode_InvokeMethod2(TRUE, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_23403_0_createTree_LE2(TRUE, x0, x1)
Cond_23403_0_createTree_LE3(TRUE, x0, x1)
Cond_23403_0_createTree_LE5(TRUE, x0, x1)
Cond_23403_0_createTree_LE6(TRUE, x0, x1)
Cond_23403_0_createTree_LE9(TRUE, x0, x1)
Cond_23403_0_createTree_LE11(TRUE, x0, 0)
21978_1_createTree_InvokeMethod(21978_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_21978_1_createTree_InvokeMethod(TRUE, 21978_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
1569_1_createTree_InvokeMethod(1569_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_1569_1_createTree_InvokeMethod(TRUE, 1569_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
25668_0_createTree_Store(x0)
Cond_25668_0_createTree_Store(TRUE, x0)

(26) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair 7513_1_MAIN_INVOKEMETHOD(1974_0_createTree_Return, x2) → COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2, 0), <(0, +(x2, -1))), 1974_0_createTree_Return, x2) the following chains were created:
  • We consider the chain 7513_1_MAIN_INVOKEMETHOD(1974_0_createTree_Return, x2[0]) → COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0]), COND_7513_1_MAIN_INVOKEMETHOD(TRUE, 1974_0_createTree_Return, x2[1]) → 7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2[1], -1)) which results in the following constraint:

    (1)    (&&(>(x2[0], 0), <(0, +(x2[0], -1)))=TRUEx2[0]=x2[1]7513_1_MAIN_INVOKEMETHOD(1974_0_createTree_Return, x2[0])≥NonInfC∧7513_1_MAIN_INVOKEMETHOD(1974_0_createTree_Return, x2[0])≥COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])∧(UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])), ≥))



    We simplified constraint (1) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (2)    (>(x2[0], 0)=TRUE<(0, +(x2[0], -1))=TRUE7513_1_MAIN_INVOKEMETHOD(1974_0_createTree_Return, x2[0])≥NonInfC∧7513_1_MAIN_INVOKEMETHOD(1974_0_createTree_Return, x2[0])≥COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])∧(UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (x2[0] + [-1] ≥ 0∧x2[0] + [-2] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])), ≥)∧[(-1)Bound*bni_146] + [(2)bni_146]x2[0] ≥ 0∧[(-1)bso_147] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (x2[0] + [-1] ≥ 0∧x2[0] + [-2] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])), ≥)∧[(-1)Bound*bni_146] + [(2)bni_146]x2[0] ≥ 0∧[(-1)bso_147] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (x2[0] + [-1] ≥ 0∧x2[0] + [-2] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])), ≥)∧[(-1)Bound*bni_146] + [(2)bni_146]x2[0] ≥ 0∧[(-1)bso_147] ≥ 0)



    We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (6)    (x2[0] ≥ 0∧[-1] + x2[0] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])), ≥)∧[(-1)Bound*bni_146 + (2)bni_146] + [(2)bni_146]x2[0] ≥ 0∧[(-1)bso_147] ≥ 0)



    We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (7)    ([1] + x2[0] ≥ 0∧x2[0] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])), ≥)∧[(-1)Bound*bni_146 + (4)bni_146] + [(2)bni_146]x2[0] ≥ 0∧[(-1)bso_147] ≥ 0)







For Pair COND_7513_1_MAIN_INVOKEMETHOD(TRUE, 1974_0_createTree_Return, x2) → 7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2, -1)) the following chains were created:
  • We consider the chain COND_7513_1_MAIN_INVOKEMETHOD(TRUE, 1974_0_createTree_Return, x2[1]) → 7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2[1], -1)) which results in the following constraint:

    (8)    (COND_7513_1_MAIN_INVOKEMETHOD(TRUE, 1974_0_createTree_Return, x2[1])≥NonInfC∧COND_7513_1_MAIN_INVOKEMETHOD(TRUE, 1974_0_createTree_Return, x2[1])≥7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2[1], -1))∧(UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2[1], -1))), ≥))



    We simplified constraint (8) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (9)    ((UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2[1], -1))), ≥)∧[2 + (-1)bso_149] ≥ 0)



    We simplified constraint (9) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (10)    ((UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2[1], -1))), ≥)∧[2 + (-1)bso_149] ≥ 0)



    We simplified constraint (10) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (11)    ((UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2[1], -1))), ≥)∧[2 + (-1)bso_149] ≥ 0)



    We simplified constraint (11) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (12)    ((UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2[1], -1))), ≥)∧0 = 0∧[2 + (-1)bso_149] ≥ 0)







For Pair 7513_1_MAIN_INVOKEMETHOD(21908_0_createTree_Return, x1) → COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1, 0), <(0, +(x1, -1))), 21908_0_createTree_Return, x1) the following chains were created:
  • We consider the chain 7513_1_MAIN_INVOKEMETHOD(21908_0_createTree_Return, x1[2]) → COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2]), COND_7513_1_MAIN_INVOKEMETHOD1(TRUE, 21908_0_createTree_Return, x1[3]) → 7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1[3], -1)) which results in the following constraint:

    (13)    (&&(>(x1[2], 0), <(0, +(x1[2], -1)))=TRUEx1[2]=x1[3]7513_1_MAIN_INVOKEMETHOD(21908_0_createTree_Return, x1[2])≥NonInfC∧7513_1_MAIN_INVOKEMETHOD(21908_0_createTree_Return, x1[2])≥COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])∧(UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])), ≥))



    We simplified constraint (13) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (14)    (>(x1[2], 0)=TRUE<(0, +(x1[2], -1))=TRUE7513_1_MAIN_INVOKEMETHOD(21908_0_createTree_Return, x1[2])≥NonInfC∧7513_1_MAIN_INVOKEMETHOD(21908_0_createTree_Return, x1[2])≥COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])∧(UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])), ≥))



    We simplified constraint (14) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (15)    (x1[2] + [-1] ≥ 0∧x1[2] + [-2] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])), ≥)∧[(-1)Bound*bni_150] + [(2)bni_150]x1[2] ≥ 0∧[1 + (-1)bso_151] ≥ 0)



    We simplified constraint (15) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (16)    (x1[2] + [-1] ≥ 0∧x1[2] + [-2] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])), ≥)∧[(-1)Bound*bni_150] + [(2)bni_150]x1[2] ≥ 0∧[1 + (-1)bso_151] ≥ 0)



    We simplified constraint (16) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (17)    (x1[2] + [-1] ≥ 0∧x1[2] + [-2] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])), ≥)∧[(-1)Bound*bni_150] + [(2)bni_150]x1[2] ≥ 0∧[1 + (-1)bso_151] ≥ 0)



    We simplified constraint (17) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (18)    (x1[2] ≥ 0∧[-1] + x1[2] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])), ≥)∧[(-1)Bound*bni_150 + (2)bni_150] + [(2)bni_150]x1[2] ≥ 0∧[1 + (-1)bso_151] ≥ 0)



    We simplified constraint (18) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (19)    ([1] + x1[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])), ≥)∧[(-1)Bound*bni_150 + (4)bni_150] + [(2)bni_150]x1[2] ≥ 0∧[1 + (-1)bso_151] ≥ 0)







For Pair COND_7513_1_MAIN_INVOKEMETHOD1(TRUE, 21908_0_createTree_Return, x1) → 7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1, -1)) the following chains were created:
  • We consider the chain COND_7513_1_MAIN_INVOKEMETHOD1(TRUE, 21908_0_createTree_Return, x1[3]) → 7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1[3], -1)) which results in the following constraint:

    (20)    (COND_7513_1_MAIN_INVOKEMETHOD1(TRUE, 21908_0_createTree_Return, x1[3])≥NonInfC∧COND_7513_1_MAIN_INVOKEMETHOD1(TRUE, 21908_0_createTree_Return, x1[3])≥7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1[3], -1))∧(UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1[3], -1))), ≥))



    We simplified constraint (20) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (21)    ((UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1[3], -1))), ≥)∧[1 + (-1)bso_153] ≥ 0)



    We simplified constraint (21) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (22)    ((UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1[3], -1))), ≥)∧[1 + (-1)bso_153] ≥ 0)



    We simplified constraint (22) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (23)    ((UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1[3], -1))), ≥)∧[1 + (-1)bso_153] ≥ 0)



    We simplified constraint (23) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (24)    ((UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1[3], -1))), ≥)∧0 = 0∧[1 + (-1)bso_153] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 7513_1_MAIN_INVOKEMETHOD(1974_0_createTree_Return, x2) → COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2, 0), <(0, +(x2, -1))), 1974_0_createTree_Return, x2)
    • ([1] + x2[0] ≥ 0∧x2[0] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])), ≥)∧[(-1)Bound*bni_146 + (4)bni_146] + [(2)bni_146]x2[0] ≥ 0∧[(-1)bso_147] ≥ 0)

  • COND_7513_1_MAIN_INVOKEMETHOD(TRUE, 1974_0_createTree_Return, x2) → 7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2, -1))
    • ((UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2[1], -1))), ≥)∧0 = 0∧[2 + (-1)bso_149] ≥ 0)

  • 7513_1_MAIN_INVOKEMETHOD(21908_0_createTree_Return, x1) → COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1, 0), <(0, +(x1, -1))), 21908_0_createTree_Return, x1)
    • ([1] + x1[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])), ≥)∧[(-1)Bound*bni_150 + (4)bni_150] + [(2)bni_150]x1[2] ≥ 0∧[1 + (-1)bso_151] ≥ 0)

  • COND_7513_1_MAIN_INVOKEMETHOD1(TRUE, 21908_0_createTree_Return, x1) → 7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1, -1))
    • ((UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1[3], -1))), ≥)∧0 = 0∧[1 + (-1)bso_153] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(7513_0_createTree_InvokeMethod) = [-1]   
POL(1569_1_createTree_InvokeMethod(x1)) = [-1] + [-1]x1   
POL(1569_0_random_ArrayAccess(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(java.lang.Object(x1)) = x1   
POL(ARRAY(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(1588_1_createTree_InvokeMethod(x1)) = [-1] + [-1]x1   
POL(1588_0_random_ArrayAccess(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(1589_1_createTree_InvokeMethod(x1)) = [-1] + [-1]x1   
POL(1589_0_random_ArrayAccess(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(7513_1_main_InvokeMethod(x1, x2)) = [-1]   
POL(2085_0_createTree_InvokeMethod) = [-1]   
POL(7727_0_main_InvokeMethod(x1, x2)) = [-1]   
POL(2140_0_createTree_InvokeMethod) = [-1]   
POL(2274_0_createTree_InvokeMethod) = [-1]   
POL(2971_0_createTree_InvokeMethod(x1)) = x1   
POL(24353_0_createTree_InvokeMethod(x1)) = [-1]   
POL(24697_0_createTree_InvokeMethod(x1)) = [-1]   
POL(25508_0_createTree_InvokeMethod(x1)) = x1   
POL(25572_0_createTree_InvokeMethod(x1)) = x1   
POL(25664_0_createTree_InvokeMethod(x1)) = x1   
POL(25727_0_createTree_InvokeMethod(x1)) = x1   
POL(25886_0_createTree_InvokeMethod(x1)) = x1   
POL(26060_0_createTree_InvokeMethod(x1)) = x1   
POL(26213_0_createTree_InvokeMethod(x1)) = x1   
POL(26307_0_createTree_InvokeMethod(x1)) = x1   
POL(26395_0_createTree_InvokeMethod(x1)) = x1   
POL(Cond_1589_1_createTree_InvokeMethod(x1, x2)) = [-1] + [-1]x2   
POL(>=(x1, x2)) = [-1]   
POL(Cond_1588_1_createTree_InvokeMethod(x1, x2)) = [-1] + [-1]x2   
POL(&&(x1, x2)) = [-1]   
POL(0) = 0   
POL(<(x1, x2)) = [-1]   
POL(1663_1_createTree_InvokeMethod(x1)) = [-1] + [-1]x1   
POL(1663_0_random_IntArithmetic(x1)) = x1   
POL(Cond_1663_1_createTree_InvokeMethod(x1, x2)) = [-1] + [-1]x2   
POL(Cond_1663_1_createTree_InvokeMethod1(x1, x2)) = [-1] + [-1]x2   
POL(1902_0_createTree_NE(x1)) = [-1] + [-1]x1   
POL(1974_0_createTree_Return) = [-1]   
POL(Cond_1902_0_createTree_NE(x1, x2)) = [-1] + [-1]x2   
POL(!(x1)) = [-1]   
POL(=(x1, x2)) = [-1]   
POL(1969_1_createTree_InvokeMethod(x1, x2)) = [-1] + [-1]x2   
POL(2798_0_createNode_InvokeMethod) = [-1]   
POL(2813_0_createNode_InvokeMethod) = [-1]   
POL(2933_0_createNode_InvokeMethod) = [-1]   
POL(2619_0_createNode_Return) = [-1]   
POL(21887_0_createTree_LE(x1)) = [-1] + [-1]x1   
POL(21908_0_createTree_Return) = [-1]   
POL(Cond_21887_0_createTree_LE(x1, x2)) = [-1] + [-1]x2   
POL(>(x1, x2)) = [-1]   
POL(21978_1_createTree_InvokeMethod(x1)) = [-1] + [-1]x1   
POL(21978_0_random_ArrayAccess(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(Cond_21887_0_createTree_LE1(x1, x2)) = [-1] + [-1]x2   
POL(22017_1_createTree_InvokeMethod(x1, x2)) = [-1] + [-1]x1 + [-1]x2   
POL(22017_0_random_ArrayAccess(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(Cond_21887_0_createTree_LE2(x1, x2)) = [-1] + [-1]x2   
POL(22030_1_createTree_InvokeMethod(x1)) = [-1] + [-1]x1   
POL(22030_0_random_ArrayAccess(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(Cond_22030_1_createTree_InvokeMethod(x1, x2)) = [-1] + [-1]x2   
POL(Cond_22017_1_createTree_InvokeMethod(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2   
POL(22181_1_createTree_InvokeMethod(x1, x2)) = [-1] + [-1]x1 + [-1]x2   
POL(22181_0_random_IntArithmetic(x1)) = x1   
POL(Cond_22181_1_createTree_InvokeMethod(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2   
POL(Cond_22181_1_createTree_InvokeMethod1(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2   
POL(23403_0_createTree_LE(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(Cond_23403_0_createTree_LE(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2   
POL(25321_1_createTree_InvokeMethod(x1, x2)) = [-1] + [-1]x2   
POL(25328_0_createNode_InvokeMethod) = [-1]   
POL(Cond_25321_1_createTree_InvokeMethod(x1, x2, x3)) = [-1] + [-1]x3   
POL(+(x1, x2)) = x1 + x2   
POL(-1) = [-1]   
POL(Cond_1902_0_createTree_NE1(x1, x2)) = [-1] + [-1]x2   
POL(2282_1_createNode_InvokeMethod(x1)) = [-1] + [-1]x1   
POL(2282_0_random_ArrayAccess(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(Cond_23403_0_createTree_LE1(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2   
POL(Cond_2282_1_createNode_InvokeMethod(x1, x2)) = [-1] + [-1]x2   
POL(Cond_2282_1_createNode_InvokeMethod1(x1, x2)) = [-1] + [-1]x2   
POL(1) = [1]   
POL(2373_1_createNode_InvokeMethod(x1)) = [-1] + [-1]x1   
POL(2373_0_random_IntArithmetic(x1)) = x1   
POL(Cond_2373_1_createNode_InvokeMethod(x1, x2)) = [-1] + [-1]x2   
POL(Cond_2373_1_createNode_InvokeMethod1(x1, x2)) = [-1] + [-1]x2   
POL(Cond_2282_1_createNode_InvokeMethod2(x1, x2)) = [-1] + [-1]x2   
POL(<=(x1, x2)) = [-1]   
POL(2773_0_createNode_InvokeMethod) = [-1]   
POL(Cond_23403_0_createTree_LE2(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2   
POL(Cond_23403_0_createTree_LE3(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2   
POL(25676_0_createNode_InvokeMethod) = [-1]   
POL(Cond_23403_0_createTree_LE5(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2   
POL(25668_0_createTree_Store(x1)) = [-1] + [-1]x1   
POL(Cond_23403_0_createTree_LE6(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2   
POL(25294_0_createNode_InvokeMethod) = [-1]   
POL(Cond_23403_0_createTree_LE9(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2   
POL(25963_0_createNode_InvokeMethod) = [-1]   
POL(25211_0_createNode_InvokeMethod) = [-1]   
POL(Cond_23403_0_createTree_LE11(x1, x2, x3)) = [-1] + [-1]x2   
POL(25519_0_createNode_InvokeMethod) = [-1]   
POL(25183_0_createNode_InvokeMethod) = [-1]   
POL(25795_0_createNode_InvokeMethod) = [-1]   
POL(Cond_21978_1_createTree_InvokeMethod(x1, x2)) = [-1] + [-1]x2   
POL(Cond_1569_1_createTree_InvokeMethod(x1, x2)) = [-1] + [-1]x2   
POL(Cond_25668_0_createTree_Store(x1, x2)) = [-1] + [-1]x2   
POL(7513_1_MAIN_INVOKEMETHOD(x1, x2)) = [2]x2   
POL(COND_7513_1_MAIN_INVOKEMETHOD(x1, x2, x3)) = [2]x3   
POL(COND_7513_1_MAIN_INVOKEMETHOD1(x1, x2, x3)) = [-1] + [2]x3   

The following pairs are in P>:

COND_7513_1_MAIN_INVOKEMETHOD(TRUE, 1974_0_createTree_Return, x2[1]) → 7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2[1], -1))
7513_1_MAIN_INVOKEMETHOD(21908_0_createTree_Return, x1[2]) → COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])
COND_7513_1_MAIN_INVOKEMETHOD1(TRUE, 21908_0_createTree_Return, x1[3]) → 7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1[3], -1))

The following pairs are in Pbound:

7513_1_MAIN_INVOKEMETHOD(1974_0_createTree_Return, x2[0]) → COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])
7513_1_MAIN_INVOKEMETHOD(21908_0_createTree_Return, x1[2]) → COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])

The following pairs are in P:

7513_1_MAIN_INVOKEMETHOD(1974_0_createTree_Return, x2[0]) → COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])

There are no usable rules.

(27) Complex Obligation (AND)

(28) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
7513_0_createTree_InvokeMethod1569_1_createTree_InvokeMethod(1569_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
7513_0_createTree_InvokeMethod1588_1_createTree_InvokeMethod(1588_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
7513_0_createTree_InvokeMethod1589_1_createTree_InvokeMethod(1589_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
7513_1_main_InvokeMethod(2085_0_createTree_InvokeMethod, x1) → 7727_0_main_InvokeMethod(x0, x1)
7513_1_main_InvokeMethod(2140_0_createTree_InvokeMethod, x1) → 7727_0_main_InvokeMethod(x0, x1)
7513_1_main_InvokeMethod(2274_0_createTree_InvokeMethod, x1) → 7727_0_main_InvokeMethod(x0, x1)
7513_1_main_InvokeMethod(2971_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(24353_0_createTree_InvokeMethod(x0), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(24697_0_createTree_InvokeMethod(x0), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(25508_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(25572_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(25664_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(25727_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(25886_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(26060_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(26213_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(26307_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(26395_0_createTree_InvokeMethod(x0), x3) → 7727_0_main_InvokeMethod(x2, x3)
1589_1_createTree_InvokeMethod(1589_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_1589_1_createTree_InvokeMethod(x2 >= x0, 1589_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_1589_1_createTree_InvokeMethod(TRUE, 1589_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 2140_0_createTree_InvokeMethod
1588_1_createTree_InvokeMethod(1588_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_1588_1_createTree_InvokeMethod(x2 >= 0 && x2 < x0, 1588_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_1588_1_createTree_InvokeMethod(TRUE, 1588_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 1663_1_createTree_InvokeMethod(1663_0_random_IntArithmetic(x4))
1663_1_createTree_InvokeMethod(1663_0_random_IntArithmetic(x0)) → Cond_1663_1_createTree_InvokeMethod(x0 >= 0, 1663_0_random_IntArithmetic(x0))
Cond_1663_1_createTree_InvokeMethod(TRUE, 1663_0_random_IntArithmetic(x0)) → 2274_0_createTree_InvokeMethod
1663_1_createTree_InvokeMethod(1663_0_random_IntArithmetic(x1)) → Cond_1663_1_createTree_InvokeMethod1(x1 >= 0, 1663_0_random_IntArithmetic(x1))
Cond_1663_1_createTree_InvokeMethod1(TRUE, 1663_0_random_IntArithmetic(x1)) → 1902_0_createTree_NE(x3)
1902_0_createTree_NE(0) → 1974_0_createTree_Return
1902_0_createTree_NE(x0) → Cond_1902_0_createTree_NE(!(x0 = 0), x0)
Cond_1902_0_createTree_NE(TRUE, x0) → 1969_1_createTree_InvokeMethod(2798_0_createNode_InvokeMethod, x0)
1969_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 2971_0_createTree_InvokeMethod(x0)
1969_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 2971_0_createTree_InvokeMethod(x0)
1969_1_createTree_InvokeMethod(2619_0_createNode_Return, x0) → 21887_0_createTree_LE(x0)
21887_0_createTree_LE(0) → 21908_0_createTree_Return
21887_0_createTree_LE(x0) → Cond_21887_0_createTree_LE(x0 > 0, x0)
Cond_21887_0_createTree_LE(TRUE, x0) → 21978_1_createTree_InvokeMethod(21978_0_random_ArrayAccess(java.lang.Object(ARRAY(x2, x3)), x4))
21887_0_createTree_LE(x0) → Cond_21887_0_createTree_LE1(x0 > 0, x0)
Cond_21887_0_createTree_LE1(TRUE, x0) → 22017_1_createTree_InvokeMethod(22017_0_random_ArrayAccess(java.lang.Object(ARRAY(x2, x3)), x4), x0)
21887_0_createTree_LE(x0) → Cond_21887_0_createTree_LE2(x0 > 0, x0)
Cond_21887_0_createTree_LE2(TRUE, x0) → 22030_1_createTree_InvokeMethod(22030_0_random_ArrayAccess(java.lang.Object(ARRAY(x2, x3)), x4))
22030_1_createTree_InvokeMethod(22030_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_22030_1_createTree_InvokeMethod(x2 >= x0, 22030_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_22030_1_createTree_InvokeMethod(TRUE, 22030_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 24697_0_createTree_InvokeMethod(x3)
22017_1_createTree_InvokeMethod(22017_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2), x3) → Cond_22017_1_createTree_InvokeMethod(x2 >= 0 && x2 < x0, 22017_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2), x3)
Cond_22017_1_createTree_InvokeMethod(TRUE, 22017_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2), x3) → 22181_1_createTree_InvokeMethod(22181_0_random_IntArithmetic(x6), x3)
22181_1_createTree_InvokeMethod(22181_0_random_IntArithmetic(x0), x2) → Cond_22181_1_createTree_InvokeMethod(x0 >= 0, 22181_0_random_IntArithmetic(x0), x2)
Cond_22181_1_createTree_InvokeMethod(TRUE, 22181_0_random_IntArithmetic(x0), x2) → 26395_0_createTree_InvokeMethod(x2)
22181_1_createTree_InvokeMethod(22181_0_random_IntArithmetic(x1), x3) → Cond_22181_1_createTree_InvokeMethod1(x1 >= 0, 22181_0_random_IntArithmetic(x1), x3)
Cond_22181_1_createTree_InvokeMethod1(TRUE, 22181_0_random_IntArithmetic(x1), x3) → 23403_0_createTree_LE(x3, x5)
23403_0_createTree_LE(x0, x1) → Cond_23403_0_createTree_LE(x1 > 0, x0, x1)
Cond_23403_0_createTree_LE(TRUE, x0, x1) → 25321_1_createTree_InvokeMethod(25328_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25727_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25727_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2619_0_createNode_Return, x0) → Cond_25321_1_createTree_InvokeMethod(x0 > 0, 2619_0_createNode_Return, x0)
Cond_25321_1_createTree_InvokeMethod(TRUE, 2619_0_createNode_Return, x0) → 21887_0_createTree_LE(x0 + -1)
1902_0_createTree_NE(x0) → Cond_1902_0_createTree_NE1(!(x0 = 0), x0)
Cond_1902_0_createTree_NE1(TRUE, x0) → 1969_1_createTree_InvokeMethod(2282_1_createNode_InvokeMethod(2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x1, x2)), x3)), x0)
23403_0_createTree_LE(x0, x1) → Cond_23403_0_createTree_LE1(x1 > 0, x0, x1)
Cond_23403_0_createTree_LE1(TRUE, x0, x1) → 25321_1_createTree_InvokeMethod(2282_1_createNode_InvokeMethod(2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x2, x3)), x4)), x0)
2282_1_createNode_InvokeMethod(2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_2282_1_createNode_InvokeMethod(x2 >= x0, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_2282_1_createNode_InvokeMethod(TRUE, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 2813_0_createNode_InvokeMethod
2282_1_createNode_InvokeMethod(2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_2282_1_createNode_InvokeMethod1(x2 >= 1 && x2 < x0, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_2282_1_createNode_InvokeMethod1(TRUE, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 2373_1_createNode_InvokeMethod(2373_0_random_IntArithmetic(x4))
2373_1_createNode_InvokeMethod(2373_0_random_IntArithmetic(x0)) → Cond_2373_1_createNode_InvokeMethod(x0 > 0, 2373_0_random_IntArithmetic(x0))
Cond_2373_1_createNode_InvokeMethod(TRUE, 2373_0_random_IntArithmetic(x0)) → 2933_0_createNode_InvokeMethod
2373_1_createNode_InvokeMethod(2373_0_random_IntArithmetic(x1)) → Cond_2373_1_createNode_InvokeMethod1(x1 > 0, 2373_0_random_IntArithmetic(x1))
Cond_2373_1_createNode_InvokeMethod1(TRUE, 2373_0_random_IntArithmetic(x1)) → 2619_0_createNode_Return
2282_1_createNode_InvokeMethod(2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_2282_1_createNode_InvokeMethod2(x2 <= -1, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_2282_1_createNode_InvokeMethod2(TRUE, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 2773_0_createNode_InvokeMethod
23403_0_createTree_LE(x0, x1) → Cond_23403_0_createTree_LE2(x1 > 0 && x0 > 0, x0, x1)
Cond_23403_0_createTree_LE2(TRUE, x0, x1) → 21887_0_createTree_LE(x0 + -1)
23403_0_createTree_LE(x0, x1) → Cond_23403_0_createTree_LE3(x1 > 0, x0, x1)
Cond_23403_0_createTree_LE3(TRUE, x0, x1) → 25321_1_createTree_InvokeMethod(25676_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 26060_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 26060_0_createTree_InvokeMethod(x0)
23403_0_createTree_LE(x0, x1) → Cond_23403_0_createTree_LE5(x1 > 0, x0, x1)
Cond_23403_0_createTree_LE5(TRUE, x0, x1) → 25668_0_createTree_Store(x0)
23403_0_createTree_LE(x0, x1) → Cond_23403_0_createTree_LE6(x1 > 0, x0, x1)
Cond_23403_0_createTree_LE6(TRUE, x0, x1) → 25321_1_createTree_InvokeMethod(25294_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25664_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25664_0_createTree_InvokeMethod(x0)
23403_0_createTree_LE(x0, x1) → Cond_23403_0_createTree_LE9(x1 > 0, x0, x1)
Cond_23403_0_createTree_LE9(TRUE, x0, x1) → 25321_1_createTree_InvokeMethod(25963_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 26307_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 26307_0_createTree_InvokeMethod(x0)
23403_0_createTree_LE(x0, 0) → 25321_1_createTree_InvokeMethod(25211_0_createNode_InvokeMethod, x0)
23403_0_createTree_LE(x0, 0) → 25321_1_createTree_InvokeMethod(2282_1_createNode_InvokeMethod(2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x2, x3)), x4)), x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25572_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25572_0_createTree_InvokeMethod(x0)
23403_0_createTree_LE(x0, 0) → Cond_23403_0_createTree_LE11(x0 > 0, x0, 0)
Cond_23403_0_createTree_LE11(TRUE, x0, 0) → 21887_0_createTree_LE(x0 + -1)
23403_0_createTree_LE(x0, 0) → 25321_1_createTree_InvokeMethod(25519_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25886_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25886_0_createTree_InvokeMethod(x0)
23403_0_createTree_LE(x0, 0) → 25668_0_createTree_Store(x0)
23403_0_createTree_LE(x0, 0) → 25321_1_createTree_InvokeMethod(25183_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25508_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25508_0_createTree_InvokeMethod(x0)
23403_0_createTree_LE(x0, 0) → 25321_1_createTree_InvokeMethod(25795_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 26213_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 26213_0_createTree_InvokeMethod(x0)
21978_1_createTree_InvokeMethod(21978_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_21978_1_createTree_InvokeMethod(x2 <= -1, 21978_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_21978_1_createTree_InvokeMethod(TRUE, 21978_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 24353_0_createTree_InvokeMethod(x3)
1569_1_createTree_InvokeMethod(1569_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_1569_1_createTree_InvokeMethod(x2 <= -1, 1569_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_1569_1_createTree_InvokeMethod(TRUE, 1569_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 2085_0_createTree_InvokeMethod
25668_0_createTree_Store(x0) → Cond_25668_0_createTree_Store(x0 > 0, x0)
Cond_25668_0_createTree_Store(TRUE, x0) → 21887_0_createTree_LE(x0 + -1)

The integer pair graph contains the following rules and edges:
(0): 7513_1_MAIN_INVOKEMETHOD(1974_0_createTree_Return, x2[0]) → COND_7513_1_MAIN_INVOKEMETHOD(x2[0] > 0 && 0 < x2[0] + -1, 1974_0_createTree_Return, x2[0])


The set Q consists of the following terms:
7513_0_createTree_InvokeMethod
7513_1_main_InvokeMethod(2085_0_createTree_InvokeMethod, x0)
7513_1_main_InvokeMethod(2140_0_createTree_InvokeMethod, x0)
7513_1_main_InvokeMethod(2274_0_createTree_InvokeMethod, x0)
7513_1_main_InvokeMethod(2971_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(24353_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(24697_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(25508_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(25572_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(25664_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(25727_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(25886_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(26060_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(26213_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(26307_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(26395_0_createTree_InvokeMethod(x0), x1)
1589_1_createTree_InvokeMethod(1589_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_1589_1_createTree_InvokeMethod(TRUE, 1589_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
1588_1_createTree_InvokeMethod(1588_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_1588_1_createTree_InvokeMethod(TRUE, 1588_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
1663_1_createTree_InvokeMethod(1663_0_random_IntArithmetic(x0))
Cond_1663_1_createTree_InvokeMethod(TRUE, 1663_0_random_IntArithmetic(x0))
Cond_1663_1_createTree_InvokeMethod1(TRUE, 1663_0_random_IntArithmetic(x0))
1902_0_createTree_NE(x0)
Cond_1902_0_createTree_NE(TRUE, x0)
1969_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0)
1969_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0)
1969_1_createTree_InvokeMethod(2619_0_createNode_Return, x0)
21887_0_createTree_LE(x0)
Cond_21887_0_createTree_LE(TRUE, x0)
Cond_21887_0_createTree_LE1(TRUE, x0)
Cond_21887_0_createTree_LE2(TRUE, x0)
22030_1_createTree_InvokeMethod(22030_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_22030_1_createTree_InvokeMethod(TRUE, 22030_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
22017_1_createTree_InvokeMethod(22017_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2), x3)
Cond_22017_1_createTree_InvokeMethod(TRUE, 22017_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2), x3)
22181_1_createTree_InvokeMethod(22181_0_random_IntArithmetic(x0), x1)
Cond_22181_1_createTree_InvokeMethod(TRUE, 22181_0_random_IntArithmetic(x0), x1)
Cond_22181_1_createTree_InvokeMethod1(TRUE, 22181_0_random_IntArithmetic(x0), x1)
23403_0_createTree_LE(x0, x1)
Cond_23403_0_createTree_LE(TRUE, x0, x1)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2619_0_createNode_Return, x0)
Cond_25321_1_createTree_InvokeMethod(TRUE, 2619_0_createNode_Return, x0)
Cond_1902_0_createTree_NE1(TRUE, x0)
Cond_23403_0_createTree_LE1(TRUE, x0, x1)
2282_1_createNode_InvokeMethod(2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_2282_1_createNode_InvokeMethod(TRUE, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_2282_1_createNode_InvokeMethod1(TRUE, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
2373_1_createNode_InvokeMethod(2373_0_random_IntArithmetic(x0))
Cond_2373_1_createNode_InvokeMethod(TRUE, 2373_0_random_IntArithmetic(x0))
Cond_2373_1_createNode_InvokeMethod1(TRUE, 2373_0_random_IntArithmetic(x0))
Cond_2282_1_createNode_InvokeMethod2(TRUE, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_23403_0_createTree_LE2(TRUE, x0, x1)
Cond_23403_0_createTree_LE3(TRUE, x0, x1)
Cond_23403_0_createTree_LE5(TRUE, x0, x1)
Cond_23403_0_createTree_LE6(TRUE, x0, x1)
Cond_23403_0_createTree_LE9(TRUE, x0, x1)
Cond_23403_0_createTree_LE11(TRUE, x0, 0)
21978_1_createTree_InvokeMethod(21978_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_21978_1_createTree_InvokeMethod(TRUE, 21978_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
1569_1_createTree_InvokeMethod(1569_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_1569_1_createTree_InvokeMethod(TRUE, 1569_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
25668_0_createTree_Store(x0)
Cond_25668_0_createTree_Store(TRUE, x0)

(29) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(30) TRUE

(31) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
7513_0_createTree_InvokeMethod1569_1_createTree_InvokeMethod(1569_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
7513_0_createTree_InvokeMethod1588_1_createTree_InvokeMethod(1588_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
7513_0_createTree_InvokeMethod1589_1_createTree_InvokeMethod(1589_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
7513_1_main_InvokeMethod(2085_0_createTree_InvokeMethod, x1) → 7727_0_main_InvokeMethod(x0, x1)
7513_1_main_InvokeMethod(2140_0_createTree_InvokeMethod, x1) → 7727_0_main_InvokeMethod(x0, x1)
7513_1_main_InvokeMethod(2274_0_createTree_InvokeMethod, x1) → 7727_0_main_InvokeMethod(x0, x1)
7513_1_main_InvokeMethod(2971_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(24353_0_createTree_InvokeMethod(x0), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(24697_0_createTree_InvokeMethod(x0), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(25508_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(25572_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(25664_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(25727_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(25886_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(26060_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(26213_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(26307_0_createTree_InvokeMethod(x1), x3) → 7727_0_main_InvokeMethod(x2, x3)
7513_1_main_InvokeMethod(26395_0_createTree_InvokeMethod(x0), x3) → 7727_0_main_InvokeMethod(x2, x3)
1589_1_createTree_InvokeMethod(1589_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_1589_1_createTree_InvokeMethod(x2 >= x0, 1589_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_1589_1_createTree_InvokeMethod(TRUE, 1589_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 2140_0_createTree_InvokeMethod
1588_1_createTree_InvokeMethod(1588_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_1588_1_createTree_InvokeMethod(x2 >= 0 && x2 < x0, 1588_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_1588_1_createTree_InvokeMethod(TRUE, 1588_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 1663_1_createTree_InvokeMethod(1663_0_random_IntArithmetic(x4))
1663_1_createTree_InvokeMethod(1663_0_random_IntArithmetic(x0)) → Cond_1663_1_createTree_InvokeMethod(x0 >= 0, 1663_0_random_IntArithmetic(x0))
Cond_1663_1_createTree_InvokeMethod(TRUE, 1663_0_random_IntArithmetic(x0)) → 2274_0_createTree_InvokeMethod
1663_1_createTree_InvokeMethod(1663_0_random_IntArithmetic(x1)) → Cond_1663_1_createTree_InvokeMethod1(x1 >= 0, 1663_0_random_IntArithmetic(x1))
Cond_1663_1_createTree_InvokeMethod1(TRUE, 1663_0_random_IntArithmetic(x1)) → 1902_0_createTree_NE(x3)
1902_0_createTree_NE(0) → 1974_0_createTree_Return
1902_0_createTree_NE(x0) → Cond_1902_0_createTree_NE(!(x0 = 0), x0)
Cond_1902_0_createTree_NE(TRUE, x0) → 1969_1_createTree_InvokeMethod(2798_0_createNode_InvokeMethod, x0)
1969_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 2971_0_createTree_InvokeMethod(x0)
1969_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 2971_0_createTree_InvokeMethod(x0)
1969_1_createTree_InvokeMethod(2619_0_createNode_Return, x0) → 21887_0_createTree_LE(x0)
21887_0_createTree_LE(0) → 21908_0_createTree_Return
21887_0_createTree_LE(x0) → Cond_21887_0_createTree_LE(x0 > 0, x0)
Cond_21887_0_createTree_LE(TRUE, x0) → 21978_1_createTree_InvokeMethod(21978_0_random_ArrayAccess(java.lang.Object(ARRAY(x2, x3)), x4))
21887_0_createTree_LE(x0) → Cond_21887_0_createTree_LE1(x0 > 0, x0)
Cond_21887_0_createTree_LE1(TRUE, x0) → 22017_1_createTree_InvokeMethod(22017_0_random_ArrayAccess(java.lang.Object(ARRAY(x2, x3)), x4), x0)
21887_0_createTree_LE(x0) → Cond_21887_0_createTree_LE2(x0 > 0, x0)
Cond_21887_0_createTree_LE2(TRUE, x0) → 22030_1_createTree_InvokeMethod(22030_0_random_ArrayAccess(java.lang.Object(ARRAY(x2, x3)), x4))
22030_1_createTree_InvokeMethod(22030_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_22030_1_createTree_InvokeMethod(x2 >= x0, 22030_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_22030_1_createTree_InvokeMethod(TRUE, 22030_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 24697_0_createTree_InvokeMethod(x3)
22017_1_createTree_InvokeMethod(22017_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2), x3) → Cond_22017_1_createTree_InvokeMethod(x2 >= 0 && x2 < x0, 22017_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2), x3)
Cond_22017_1_createTree_InvokeMethod(TRUE, 22017_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2), x3) → 22181_1_createTree_InvokeMethod(22181_0_random_IntArithmetic(x6), x3)
22181_1_createTree_InvokeMethod(22181_0_random_IntArithmetic(x0), x2) → Cond_22181_1_createTree_InvokeMethod(x0 >= 0, 22181_0_random_IntArithmetic(x0), x2)
Cond_22181_1_createTree_InvokeMethod(TRUE, 22181_0_random_IntArithmetic(x0), x2) → 26395_0_createTree_InvokeMethod(x2)
22181_1_createTree_InvokeMethod(22181_0_random_IntArithmetic(x1), x3) → Cond_22181_1_createTree_InvokeMethod1(x1 >= 0, 22181_0_random_IntArithmetic(x1), x3)
Cond_22181_1_createTree_InvokeMethod1(TRUE, 22181_0_random_IntArithmetic(x1), x3) → 23403_0_createTree_LE(x3, x5)
23403_0_createTree_LE(x0, x1) → Cond_23403_0_createTree_LE(x1 > 0, x0, x1)
Cond_23403_0_createTree_LE(TRUE, x0, x1) → 25321_1_createTree_InvokeMethod(25328_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25727_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25727_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2619_0_createNode_Return, x0) → Cond_25321_1_createTree_InvokeMethod(x0 > 0, 2619_0_createNode_Return, x0)
Cond_25321_1_createTree_InvokeMethod(TRUE, 2619_0_createNode_Return, x0) → 21887_0_createTree_LE(x0 + -1)
1902_0_createTree_NE(x0) → Cond_1902_0_createTree_NE1(!(x0 = 0), x0)
Cond_1902_0_createTree_NE1(TRUE, x0) → 1969_1_createTree_InvokeMethod(2282_1_createNode_InvokeMethod(2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x1, x2)), x3)), x0)
23403_0_createTree_LE(x0, x1) → Cond_23403_0_createTree_LE1(x1 > 0, x0, x1)
Cond_23403_0_createTree_LE1(TRUE, x0, x1) → 25321_1_createTree_InvokeMethod(2282_1_createNode_InvokeMethod(2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x2, x3)), x4)), x0)
2282_1_createNode_InvokeMethod(2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_2282_1_createNode_InvokeMethod(x2 >= x0, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_2282_1_createNode_InvokeMethod(TRUE, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 2813_0_createNode_InvokeMethod
2282_1_createNode_InvokeMethod(2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_2282_1_createNode_InvokeMethod1(x2 >= 1 && x2 < x0, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_2282_1_createNode_InvokeMethod1(TRUE, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 2373_1_createNode_InvokeMethod(2373_0_random_IntArithmetic(x4))
2373_1_createNode_InvokeMethod(2373_0_random_IntArithmetic(x0)) → Cond_2373_1_createNode_InvokeMethod(x0 > 0, 2373_0_random_IntArithmetic(x0))
Cond_2373_1_createNode_InvokeMethod(TRUE, 2373_0_random_IntArithmetic(x0)) → 2933_0_createNode_InvokeMethod
2373_1_createNode_InvokeMethod(2373_0_random_IntArithmetic(x1)) → Cond_2373_1_createNode_InvokeMethod1(x1 > 0, 2373_0_random_IntArithmetic(x1))
Cond_2373_1_createNode_InvokeMethod1(TRUE, 2373_0_random_IntArithmetic(x1)) → 2619_0_createNode_Return
2282_1_createNode_InvokeMethod(2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_2282_1_createNode_InvokeMethod2(x2 <= -1, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_2282_1_createNode_InvokeMethod2(TRUE, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 2773_0_createNode_InvokeMethod
23403_0_createTree_LE(x0, x1) → Cond_23403_0_createTree_LE2(x1 > 0 && x0 > 0, x0, x1)
Cond_23403_0_createTree_LE2(TRUE, x0, x1) → 21887_0_createTree_LE(x0 + -1)
23403_0_createTree_LE(x0, x1) → Cond_23403_0_createTree_LE3(x1 > 0, x0, x1)
Cond_23403_0_createTree_LE3(TRUE, x0, x1) → 25321_1_createTree_InvokeMethod(25676_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 26060_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 26060_0_createTree_InvokeMethod(x0)
23403_0_createTree_LE(x0, x1) → Cond_23403_0_createTree_LE5(x1 > 0, x0, x1)
Cond_23403_0_createTree_LE5(TRUE, x0, x1) → 25668_0_createTree_Store(x0)
23403_0_createTree_LE(x0, x1) → Cond_23403_0_createTree_LE6(x1 > 0, x0, x1)
Cond_23403_0_createTree_LE6(TRUE, x0, x1) → 25321_1_createTree_InvokeMethod(25294_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25664_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25664_0_createTree_InvokeMethod(x0)
23403_0_createTree_LE(x0, x1) → Cond_23403_0_createTree_LE9(x1 > 0, x0, x1)
Cond_23403_0_createTree_LE9(TRUE, x0, x1) → 25321_1_createTree_InvokeMethod(25963_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 26307_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 26307_0_createTree_InvokeMethod(x0)
23403_0_createTree_LE(x0, 0) → 25321_1_createTree_InvokeMethod(25211_0_createNode_InvokeMethod, x0)
23403_0_createTree_LE(x0, 0) → 25321_1_createTree_InvokeMethod(2282_1_createNode_InvokeMethod(2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x2, x3)), x4)), x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25572_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25572_0_createTree_InvokeMethod(x0)
23403_0_createTree_LE(x0, 0) → Cond_23403_0_createTree_LE11(x0 > 0, x0, 0)
Cond_23403_0_createTree_LE11(TRUE, x0, 0) → 21887_0_createTree_LE(x0 + -1)
23403_0_createTree_LE(x0, 0) → 25321_1_createTree_InvokeMethod(25519_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25886_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25886_0_createTree_InvokeMethod(x0)
23403_0_createTree_LE(x0, 0) → 25668_0_createTree_Store(x0)
23403_0_createTree_LE(x0, 0) → 25321_1_createTree_InvokeMethod(25183_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 25508_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 25508_0_createTree_InvokeMethod(x0)
23403_0_createTree_LE(x0, 0) → 25321_1_createTree_InvokeMethod(25795_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0) → 26213_0_createTree_InvokeMethod(x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0) → 26213_0_createTree_InvokeMethod(x0)
21978_1_createTree_InvokeMethod(21978_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_21978_1_createTree_InvokeMethod(x2 <= -1, 21978_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_21978_1_createTree_InvokeMethod(TRUE, 21978_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 24353_0_createTree_InvokeMethod(x3)
1569_1_createTree_InvokeMethod(1569_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → Cond_1569_1_createTree_InvokeMethod(x2 <= -1, 1569_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_1569_1_createTree_InvokeMethod(TRUE, 1569_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2)) → 2085_0_createTree_InvokeMethod
25668_0_createTree_Store(x0) → Cond_25668_0_createTree_Store(x0 > 0, x0)
Cond_25668_0_createTree_Store(TRUE, x0) → 21887_0_createTree_LE(x0 + -1)

The integer pair graph contains the following rules and edges:
(1): COND_7513_1_MAIN_INVOKEMETHOD(TRUE, 1974_0_createTree_Return, x2[1]) → 7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, x2[1] + -1)
(3): COND_7513_1_MAIN_INVOKEMETHOD1(TRUE, 21908_0_createTree_Return, x1[3]) → 7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, x1[3] + -1)


The set Q consists of the following terms:
7513_0_createTree_InvokeMethod
7513_1_main_InvokeMethod(2085_0_createTree_InvokeMethod, x0)
7513_1_main_InvokeMethod(2140_0_createTree_InvokeMethod, x0)
7513_1_main_InvokeMethod(2274_0_createTree_InvokeMethod, x0)
7513_1_main_InvokeMethod(2971_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(24353_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(24697_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(25508_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(25572_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(25664_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(25727_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(25886_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(26060_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(26213_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(26307_0_createTree_InvokeMethod(x0), x1)
7513_1_main_InvokeMethod(26395_0_createTree_InvokeMethod(x0), x1)
1589_1_createTree_InvokeMethod(1589_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_1589_1_createTree_InvokeMethod(TRUE, 1589_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
1588_1_createTree_InvokeMethod(1588_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_1588_1_createTree_InvokeMethod(TRUE, 1588_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
1663_1_createTree_InvokeMethod(1663_0_random_IntArithmetic(x0))
Cond_1663_1_createTree_InvokeMethod(TRUE, 1663_0_random_IntArithmetic(x0))
Cond_1663_1_createTree_InvokeMethod1(TRUE, 1663_0_random_IntArithmetic(x0))
1902_0_createTree_NE(x0)
Cond_1902_0_createTree_NE(TRUE, x0)
1969_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0)
1969_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0)
1969_1_createTree_InvokeMethod(2619_0_createNode_Return, x0)
21887_0_createTree_LE(x0)
Cond_21887_0_createTree_LE(TRUE, x0)
Cond_21887_0_createTree_LE1(TRUE, x0)
Cond_21887_0_createTree_LE2(TRUE, x0)
22030_1_createTree_InvokeMethod(22030_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_22030_1_createTree_InvokeMethod(TRUE, 22030_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
22017_1_createTree_InvokeMethod(22017_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2), x3)
Cond_22017_1_createTree_InvokeMethod(TRUE, 22017_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2), x3)
22181_1_createTree_InvokeMethod(22181_0_random_IntArithmetic(x0), x1)
Cond_22181_1_createTree_InvokeMethod(TRUE, 22181_0_random_IntArithmetic(x0), x1)
Cond_22181_1_createTree_InvokeMethod1(TRUE, 22181_0_random_IntArithmetic(x0), x1)
23403_0_createTree_LE(x0, x1)
Cond_23403_0_createTree_LE(TRUE, x0, x1)
25321_1_createTree_InvokeMethod(2813_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2933_0_createNode_InvokeMethod, x0)
25321_1_createTree_InvokeMethod(2619_0_createNode_Return, x0)
Cond_25321_1_createTree_InvokeMethod(TRUE, 2619_0_createNode_Return, x0)
Cond_1902_0_createTree_NE1(TRUE, x0)
Cond_23403_0_createTree_LE1(TRUE, x0, x1)
2282_1_createNode_InvokeMethod(2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_2282_1_createNode_InvokeMethod(TRUE, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_2282_1_createNode_InvokeMethod1(TRUE, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
2373_1_createNode_InvokeMethod(2373_0_random_IntArithmetic(x0))
Cond_2373_1_createNode_InvokeMethod(TRUE, 2373_0_random_IntArithmetic(x0))
Cond_2373_1_createNode_InvokeMethod1(TRUE, 2373_0_random_IntArithmetic(x0))
Cond_2282_1_createNode_InvokeMethod2(TRUE, 2282_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_23403_0_createTree_LE2(TRUE, x0, x1)
Cond_23403_0_createTree_LE3(TRUE, x0, x1)
Cond_23403_0_createTree_LE5(TRUE, x0, x1)
Cond_23403_0_createTree_LE6(TRUE, x0, x1)
Cond_23403_0_createTree_LE9(TRUE, x0, x1)
Cond_23403_0_createTree_LE11(TRUE, x0, 0)
21978_1_createTree_InvokeMethod(21978_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_21978_1_createTree_InvokeMethod(TRUE, 21978_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
1569_1_createTree_InvokeMethod(1569_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
Cond_1569_1_createTree_InvokeMethod(TRUE, 1569_0_random_ArrayAccess(java.lang.Object(ARRAY(x0, x1)), x2))
25668_0_createTree_Store(x0)
Cond_25668_0_createTree_Store(TRUE, x0)

(32) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes.

(33) TRUE